jenkins中通过execute shell启动的进程会被杀死的问题(其它进程)

   今天在做自动化jenkins部署,遇到了一个问题.我在执行shell脚本的时候,会把其它进程也杀死,而且本进程也不再执行,查找资源,找到了一篇文章。

jenkins中通过execute shell启动的进程会被杀死的问题(其它进程)

  这是因为Jenkins默认会在Build结束后Kill掉所有的衍生进程。

解决方法:

1.重设环境变量build_id

  在execute shell输入框中加入BUILD_ID=DONTKILLME,即可防止jenkins杀死启动的java进程

  jenkins中通过execute shell启动的进程会被杀死的问题(其它进程)

  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