Deployment
在 Jenkins 建構步驟中開始一個永遠的過程?
我在 Jenkins 部署結束時執行 shell 命令以重新啟動永久腳本:
npm install && forever stop app.js && forever start -a -l /var/log/forever.log app.js
當我以使用者 jenkins 的身份執行它時,一切正常,建構歷史記錄的控制台輸出也告訴我永久腳本正在執行。但是,該過程在部署完成後立即停止,並且永久過程停止。
是什麼導致了這種行為,我該如何解決?
詹金斯殺死了工作產生的所有程序。
這可以通過將
BUILD_ID
環境變數設置為其他值來禁用:export BUILD_ID=dontKillMe
有關詳細資訊,請參閱https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller
在新的管道作業中,設置
BUILD_ID
不再有效。相反,您需要設置JENKINS_NODE_COOKIE
以防止 Jenkins 在作業完成時終止您的程序。sh 'export JENKINS_NODE_COOKIE=dontKillMe' sh 'myProcess'
或者,更有選擇性:
sh 'JENKINS_NODE_COOKIE=dontKillMe myProcess'