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

Posted rongfengliang-荣锋亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkins中通过execute shell启动的进程会被杀死的问题相关的知识,希望对你有一定的参考价值。

在jenkins中配置自动更新部署项目时,如果采取用execute shell启动/关闭tomcat,会发现可以进行关闭tomcat,

但是无法启动tomcat,虽然构建会显示执行成功,但是查看进程,tomcat是没有启动的。这是因为Jenkins默认

会在Build结束后Kill掉所有的衍生进程。需要进行以下配置,才能避免此类情况发生:

  1.重设环境变量build_id

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

  

 

 

  2.在启动jenkins 的时候禁止jenkins杀死衍生进程

    修改/etc/sysconfig/jenkins配置,在JENKINS_JAVA_OPTIONS中加入-Dhudson.util.ProcessTree.disable=true。

    需要重启jenkins生效

    此方法配置一次后,所有的job都无需设置BUILD_ID,就能够防止jenkins杀死启动的tomcat进程

以上是关于jenkins中通过execute shell启动的进程会被杀死的问题的主要内容,如果未能解决你的问题,请参考以下文章

jenkin 不必要的Execute shell执行失败,导致jenkins都失败的解决

Jenkins Build Execute Shell - 文件权限被拒绝

在 Jenkins 中,Execute Shell 如何/何时将构建标记为失败?

如何在 Blazemeter 测试中通过 Jenkins 在 .jmx 文件中设置参数

如何在 Jenkins 中通过 *** 拉取/克隆 git 存储库?

如何在 Jenkins 中通过环境变量设置定期构建作业的时间表