jenkins运⾏shell脚本启动项⽬显⽰成功但项⽬没启动
jenkins运⾏shell脚本启动项⽬显⽰成功但项⽬没启动
jenkins的安装部署就不说了。我这个项⽬是从⼀个原来的项⽬复制后直接修改相应配置的,将需要的都配置好后发现会运⾏指定的shell脚本,但是项⽬就是不启动。但我被复制的项⽬是好的。
shell最简单脚本
⼀、问题排查
1.看控制台输出发现还真有问题:
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [-1]]
Finished: UNSTABLE
2.后来经过百度很多⼈都说是因为ps查询到的进程包含查询进程⾃⾝,当管道进⾏到kill的时候,所有进程⼀同被杀死。解决⽅法:在查项⽬进程号时加上“grep -v grep”排除掉它⾃⾝。
但我的本来就加了这个,所以并没有解决我的问题。
我的脚本:
3.后来⼜看到说磁盘满了,也不是。。。
4.后来到个在 SSH Publishers的Exec command最后加上ps -ef | grep java,这个最后显⽰Finished: successed了,但是错误还是在。加这个作⽤时给它⼀个返回值,jenkins读到了脚本的返回值就显⽰成功了,但是这跟错误⽆关,项⽬还是没起来。
5.此时我已经折腾了半天了,⽆奈。。我只能从脚本下⼿了,我发现正常的项⽬打印查到的pid都只有⼀个,但是这个项⽬有两个以上,我想这就是问题所在了。于是继续百度,在脚本第⼀⾏加BUILD_ID=dontkillme,没⽤没⽤。。。
⼆、问题确定
按理来说不可能有问题,我的脚本单独执⾏没问题,⽽且其他类似的项⽬除了路径不⼀样其他都⼀样⼀点问题没⽤。于是我只能从脚本⾥⾯的内容进⾏修改测试,⽤排除法来解决。
1.后⾯我在脚本加了个输出,看往哪⾛。下⾯是我修改后的脚本:
2.结果它打印了“正常启动啦”,于是可以确定问题有以下⼏个:
(1).查进程号查到多个,并且被kill掉了。
(2).但是继续往下⾛了,后⾯的启动脚本⼜没有执⾏。
三、问题解决
1.最后我从项⽬路径下⼿了,我本项⽬跟其他项⽬在shell⾥写的都是绝对路径,但是我发现jpush-app-
1.0中的0是红⾊,说实话,我也没明⽩⾥⾯的字体颜⾊啥意思。但我感觉它就是有问题。其实⼀开始就看到了,但没怀疑到它⾝上。
2.然后我把jpush-app-1.0改为jpush-app,嗯。。。好了。。。
四、总结
1.查pid时加上grep -v grep
2.检查磁盘内存
3.SSH Publishers的Exec command最后加上ps -ef | grep java
4.项⽬路径有数字或者多个-(具体啥原因还没弄清楚,弄清楚了再来加上),如果以上没解决,考虑项⽬路径,尽量简单点。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。