jenkins中通过execute shell启动的进程会被杀死的问题(其它进程)
今天在做自动化jenkins部署,遇到了一个问题.我在执行shell脚本的时候,会把其它进程也杀死,而且本进程也不再执行,查找资源,找到了一篇文章。
这是因为Jenkins默认会在Build结束后Kill掉所有的衍生进程。
解决方法:
1.重设环境变量build_id
在execute shell输入框中加入BUILD_ID=DONTKILLME,即可防止jenkins杀死启动的java进程
2.在启动jenkins 的时候禁止jenkins杀死衍生进程(此方法未测试,也是解决办法之一)
修改/etc/sysconfig/jenkins配置,在JENKINS_JAVA_OPTIONS中加入-Dhudson.util.ProcessTree.disable=true。需要重启jenkins生效
此方法配置一次后,所有的job都无需设置BUILD_ID,就能够防止jenkins杀死启动的java进程
图片原url:https://wiki.jenkins.io/display/JENKINS/ProcessTreeKiller