jenkins执⾏shell命令出错:[Execexitstatusnotzero.Sta。。。
先贴⼀个jenkins ssh配置的博⽂(讲的很清晰):
其实触发[Exec exit status not zero. Status [-1]]的原因有很多,所以我们需要知道到底是shell脚本⾥⾯哪⼀步出错了,这样才能具体分析⾃⼰的问题所在,通过勾选如下图所⽰的“Verbose output in console”,可以在jenkins控制台Console Output看到更详细的项⽬构建过程中的⽇志信息。
最后我发现应该是kill进程的时候把grep也杀掉了,但是我⽤⽹上反向过滤的⽅法并没有⽤:ps -ef | grep ${TOMCAT_HOME}/ | grep -v grep | awk '{print $2}
从⽇志上看,jenkins运⾏shell的时候,还是会把grep⼀起kill掉,所以反向过滤⽆效(⾄于为什么我也不知道),于是只能采取仅返回第⼀个匹配结果的⽅法:ps -ef | grep -m 1 ${TOMCAT_HOME}/ | awk '{print $2},如此操作就可以精确kill掉tomcat进程
shell脚本返回执行结果【备注】如果你之前没有设置过的话,jenkins控制台输出的中⽂⼀般都是乱码,解决办法:在jenkins安装⽬录/l中新增-ding=utf-8,如下
-Xrs -Xmx256m -ding=utf-8 -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar “E:\Program
Files\Jenkins\jenkins.war” --httpPort=8083 --webroot="%LocalAppData%\Jenkinswar"
然后重启jenkins服务:
停⽌jenkins服务:net stop jenkins
启动jenkins服务:net start jenkins