jenkins自動殺掉衍生程序怎麼解決
阿新 • • 發佈:2018-11-05
解決辦法:
- 啟動 Jenkins 的時候:加上 -Dhudson.util.ProcessTree.disable=true,也就是 java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war 或者 修改/etc/sysconfig/jenkins配置,在JENKINS_JAVA_OPTIONS中加入-Dhudson.util.ProcessTree.disable=true。需要重啟jenkins生效
- 在後臺程序前加上 BUILD_ID=dontKillMe,也就是 BUILD_ID=dontKillMe nohup npm start >/var/app/nohup.out 2>&1 & 或者在 execute shell輸入框中加入BUILD_ID=DONTKILLME,即可防止jenkins殺死啟動的程序
用了上面二個方法後,就解決jenkins自動殺npm程序的問題了.
shell例項:
#!/bin/bash # 環境 ACTIVE=daily # jar包本地maven倉庫路徑 JAR_PATH='/root/.m2/repository/com/test/0.0.1-SNAPSHOT/' # 程序名 PNAME='test-0.0.1-SNAPSHOT.jar' # 查詢程序id並且殺掉 #ps -ef | grep $PNAME | grep -v grep | awk '{print $2}' | xargs kill -9 PID=$(ps -ef | grep $PNAME | grep -v grep | awk '{print $2}') echo "start pid: $PID" kill -9 $PID # 啟動jar包 BUILD_ID=dontKillMe nohup java -Xms500m -Xmx500m -Xmn250m -Xss256k -server -XX:+HeapDumpOnOutOfMemoryError -jar $JAR_PATH/$PNAME --spring.profiles.active=$ACTIVE & NEW_PID=$(ps -ef | grep $PNAME | grep -v grep | awk '{print $2}') echo "start success,new pid: $NEW_PID" echo "------------- end ---------------"