jenkins解決構建完成后自動殺死進程的問題


jenkins解決構建完成后自動殺死進程的問題(兩種解決方案)

1. 問題描述

筆者想通過Jenkins拉取gitlab的項目代碼,進行構建后,將web項目的war包部署到Tomcat上

在這里插入圖片描述
部署war包采用Tomcat重啟的方式 post_steps里邊如下

cp /var/lib/jenkins/workspace/kgcweb/target/kgcweb.war  /usr/local/tomcat/webapps/
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

 

查看Jenkins的構建日志 沒有任何異常 如下

在這里插入圖片描述

但是訪問對應的web時報錯403

2. 方法一:通過在post_steps里寫BUILD_ID解決殺進程問題

原理:

jenkins默認會在構建完成后殺掉構建過程中又jenkins中shell命令觸發的衍生進程。jenkins根據BUILD_ID識別某個進程是否為構建過程的衍生進程,故修改BUILD_ID后,jenkins就無法識別是否為衍生進程,則此進程能在后台保留運行

修改post_steps如下

OLD_BUILD_ID=$BUILD_ID
echo $OLD_BUILD_ID
BUILD_ID=dontKillMe
cp /var/lib/jenkins/workspace/kgcweb/target/kgcweb.war  /usr/local/tomcat/webapps/
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

 

 

任務構建成功之后 可以成功訪問到頁面

3. 方法二:修改Jenkins運行用戶,其他的都不需要修改

[root@localhost ~]# vim /etc/sysconfig/jenkins 
 29 JENKINS_USER="jenkins"
[root@localhost ~]# systemctl restart jenkins

 

還是按照相同的方式運行Jenkins任務,問題成功解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM