1. 程式人生 > >【Jenkins】Jenkins因為/tmp/xxx.sh not found導致Build step 'Execute shell' marked build as failure

【Jenkins】Jenkins因為/tmp/xxx.sh not found導致Build step 'Execute shell' marked build as failure

錯誤描述

如圖,專案構建是成功的,但是Jenkins構建失敗了。
在這裡插入圖片描述

具體報錯如下:

[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.714 s
[INFO] Finished at: 2019-01-04T13:00:58+08:00
[INFO] Final Memory: 36M/126M
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving /var/lib/jenkins/workspace/zifeiyu-common/pom.xml to com.zifeiyu/common/0.0.1-SNAPSHOT/common-0.0.1-SNAPSHOT.pom
[JENKINS] Archiving /var/lib/jenkins/workspace/zifeiyu-common/target/common-0.0.1-SNAPSHOT.jar to com.zifeiyu/common/0.0.1-SNAPSHOT/common-0.0.1-SNAPSHOT.jar
[zifeiyu-common] $ /bin/sh -xe /tmp/jenkins2951848334079649243.sh
channel stopped
+ project=common-0.0.1-SNAPSHOT.jar
+ pathName=zifeiyu-common
+ cp /var/lib/jenkins/workspace/zifeiyu-common/target/common-0.0.1-SNAPSHOT.jar /usr/local/develop
+ cd /usr/local/develop
+ grep -v grep
+ grep common-0.0.1-SNAPSHOT.jar
+ ps -ef
+ awk {print $2}
+ pid=999
+ [ -n 999 ]
+    kill -9 999
/tmp/jenkins2951848334079649243.sh: 9: /tmp/jenkins2951848334079649243.sh:  : not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE

Shell指令碼

project=common-0.0.1-SNAPSHOT.jar
pathName=zifeiyu-common
cp /var/lib/jenkins/workspace/$pathName/target/$project /usr/local/develop
cd /usr/local/develop
pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi
BUILD_ID=dontKillMe nohup java -Xms64m -Xmx512m -XX:PermSize=32m -XX:MaxPermSize=512m -jar $project --spring.profiles.active=prod &
exit 0

原因:shell指令碼配置錯誤

解決方案

  • shell前加上#!/bin/sh -l
#!/bin/sh -l
project=common-0.0.1-SNAPSHOT.jar
pathName=zifeiyu-common
cp /var/lib/jenkins/workspace/$pathName/target/$project /usr/local/develop
cd /usr/local/develop
pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi
BUILD_ID=dontKillMe nohup java -Xms64m -Xmx512m -XX:PermSize=32m -XX:MaxPermSize=512m -jar $project --spring.profiles.active=prod &
exit 0

參考文章:https://blog.csdn.net/u013201439/article/details/71425165