jenkins 部署啓動項目後 殺死子進程

前言


最近在鼓搗 jenkins 的時候,遇到了很多問題,這個問題搞的好難受,就是我寫的項目啓動腳本,在服務器本地可以執行,但是在jenkins上構建後執行,項目就啓動不起來。

搞得我要裂開了,後來站在巨人的肩膀上,終於找到了解決方案!!!


解決方案

問題發生的前提:你的 jenkins 所在的服務器和 你部署項目的服務器是同一臺(我自己鼓搗所以就用了同一臺,咱 們項目開發的時候,都是服務器分開的),所以咱們很少遇到這個問題。


正如題目寫的,就是 jenkins 在構建結束之後,會殺死它創建的子進程,所以你寫的後臺執行的腳本也會被kill掉。


方案一:

# 在執行的腳本前邊加入:不要殺死我 ~
export BUILD_ID=dontKillMe

# 要執行的腳本命令
nohup java -jar veryGoodItem.jar > logTest.log 2>&1 &

方案二:
# 臨時改變BUILD_ID值,使得Jenkins不會找到並結束掉run.sh啓動的後臺進程
OLD_BUILD_ID=$BUILD_ID
echo $OLD_BUILD_ID
BUILD_ID=dontKillMe

# 要執行的腳本命令
nohup java -jar veryGoodItem.jar > logTest.log 2>&1 &

# 改回原來的BUILD_ID值
BUILD_ID=$OLD_BUILD_ID
echo $BUILD_ID



最後和大家說倆句:遇到問題的時候,不能想當然,覺得不是那個問題,還是要多嘗試,說不定你就成功了。畢竟行動見真知,奧裏給!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章