在 Linux 系統中,用腳本啟動服務后,退出當前用戶,啟動的服務進程會被終止。
掛斷信號(SIGHUP)終止程序。
解決:
nohup java -jar spring.jar &
nohup:不掛斷運行命令,用戶退出或終端關閉,程序仍然運行。
&:后台運行。
https://www.cnblogs.com/jhxxb/p/10987503.html
在 Jenkins 中,任務執行完成后會自動終止部署過程中的子進程。
https://wiki.jenkins.io/display/JENKINS/ProcessTreeKiller
最常見的問題就是 tomcat 啟動命令執行成功了,但是無法訪問。
解決:
Pipeline job
withEnv(['JENKINS_NODE_COOKIE=dontkillme']) { sh 'sh /opt/tomcat/bin/startup.sh' }
普通 job
OLD_BUILD_ID=$BUILD_ID echo $OLD_BUILD_ID export BUILD_ID=dontKillMe # 執行 tomcat 啟動腳本 sh /opt/tomcat/bin/startup.sh # 改回原來的 BUILD_ID 值 export BUILD_ID=$OLD_BUILD_ID echo $BUILD_ID
不使用 root 用戶啟動
# yum 方式安裝下的配置文件路徑 vim /etc/sysconfig/jenkins JENKINS_USER="jenkins" systemctl restart jenkins