jenkins运行shell脚本启动项目显示成功但项目没启动

jenkins运行shell脚本启动项目显示成功但项目没启动

jenkins的安装部署就不说了。我这个项目是从一个原来的项目复制后直接修改相应配置的,将需要的都配置好后发现会运行指定的shell脚本,但是项目就是不启动。但我被复制的项目是好的。

一、问题排查

1.看控制台输出发现还真有问题:
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [-1]]
Finished: UNSTABLE
jenkins运行shell脚本启动项目显示成功但项目没启动_第1张图片
2.后来经过百度很多人都说是因为ps查询到的进程包含查询进程自身,当管道进行到kill的时候,所有进程一同被杀死。解决方法:在查找项目进程号时加上“grep -v grep”排除掉它自身。

但我的本来就加了这个,所以并没有解决我的问题。
我的脚本:
jenkins运行shell脚本启动项目显示成功但项目没启动_第2张图片
3.后来又看到说磁盘满了,也不是。。。

4.后来找到个在 SSH Publishers的Exec command最后加上ps -ef | grep java,这个最后显示Finished: successed了,但是错误还是在。加这个作用时给它一个返回值,jenkins读到了脚本的返回值就显示成功了,但是这跟错误无关,项目还是没起来。

5.此时我已经折腾了半天了,无奈。。我只能从脚本下手了,我发现正常的项目打印查到的pid都只有一个,但是这个项目有两个以上,我想这就是问题所在了。于是继续百度,在脚本第一行加BUILD_ID=dontkillme,没用没用。。。

二、问题确定

按理来说不可能有问题,我的脚本单独执行没问题,而且其他类似的项目除了路径不一样其他都一样一点问题没用。于是我只能从脚本里面的内容进行修改测试,用排除法来解决。

1.后面我在脚本加了个输出,看往哪走。下面是我修改后的脚本:
jenkins运行shell脚本启动项目显示成功但项目没启动_第3张图片
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.项目路径有数字或者多个-(具体啥原因还没弄清楚,弄清楚了再来加上),如果以上没解决,考虑项目路径,尽量简单点。

你可能感兴趣的:(jenkins运行shell,jenkins通过shell,shell项目没启动,jenkins,shell脚本)