解决jenkins中通过execute shell启动的进程会被杀死的问题
在jenkins中配置自动更新部署项目时,如果采取用execute shell启动/关闭tomcat,会发现可以进行关闭tomcat,但是无法启动tomcat,虽然构建会显示执行成功,但是查看进程,tomcat是没有启动的。这是因为Jenkins默认会在Build结束后Kill掉所有的衍生进程。需要进行以下配置,才能避免此类情况发生:
一、java启动war包解决方式
二、修改BUILD_ID
jenkins默认会在构建完成后杀掉构建过程中又jenkins中shell命令触发的衍生进程。jenkins根据BUILD_ID识别某个进程是否为构建过程的衍生进程,故修改BUILD_ID后,jenkins就无法识别是否为衍生进程,则此进程能在后台保留运行。
1、在execute shell中加入BUILD_ID=DONTKILLME,DONTKILLME仅仅为增加可读性,可以任意修改其它,在想保留的进程启动命令前加入这一行,例如:
一、java启动war包解决方式
# 添加启动参数 -Dhudson.util.ProcessTree.disable=true java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war
二、修改BUILD_ID
jenkins默认会在构建完成后杀掉构建过程中又jenkins中shell命令触发的衍生进程。jenkins根据BUILD_ID识别某个进程是否为构建过程的衍生进程,故修改BUILD_ID后,jenkins就无法识别是否为衍生进程,则此进程能在后台保留运行。
1、在execute shell中加入BUILD_ID=DONTKILLME,DONTKILLME仅仅为增加可读性,可以任意修改其它,在想保留的进程启动命令前加入这一行,例如:
BUILD_ID=DONTKILLME sh /home/seaxiang/restart.sh2、临时改变BUILD_ID值
OLD_BUILD_ID=$BUILD_ID echo $OLD_BUILD_ID BUILD_ID=dontKillMe #此处放入shell脚本或者shell命令 BUILD_ID=$OLD_BUILD_ID echo $BUILD_ID
0
赞
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦