我在配置一个停止和启动Tomcat服务器的作业时,遇到了以下错误:
进程泄漏文件描述符。有关更多信息,请参见http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build
当我谷歌搜索时,我得到了一个推荐的解决方案:set BUILD_ID=dontKillMe
这是确切的解决方案吗?
如果是,我需要在哪里设置BUILD_ID?在ant/post构建脚本中吗?
能否有人澄清一下这个问题?
我在配置一个停止和启动Tomcat服务器的作业时,遇到了以下错误:
进程泄漏文件描述符。有关更多信息,请参见http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build
当我谷歌搜索时,我得到了一个推荐的解决方案:set BUILD_ID=dontKillMe
这是确切的解决方案吗?
如果是,我需要在哪里设置BUILD_ID?在ant/post构建脚本中吗?
能否有人澄清一下这个问题?
是的,为进程创建假的BUILD_ID
会告诉Jenkins在检测到生成的进程时忽略此进程,因此该进程完成作业后不会被终止。
用法:在命令之前输入BUILD_ID=dontKillMe
,例如进入执行脚本
构建步骤:
BUILD_ID=dontKillMe nohup ./yourStartScript.sh &
注意:还可以参见nohup
默认情况下,Jenkins会在构建完成后关闭所有生成的进程。
要覆盖这个设置,您需要创建环境变量BUILD_ID
。
转到Jenkins -> 管理Jenkins -> 配置系统。
现在,在全局属性部分下,在环境变量下,点击添加按钮以添加新的环境变量。
给出name=BUILD_ID
和value=allow_to_run_as_daemon start_my_service
。
点击保存按钮。然后就完成了。
现在,即使构建已经完成,生成的进程也将继续执行。
-Dhudson.util.ProcessTree.disable=true
完成了
我尝试了不同的建议,但没有一个选项对我起作用。最终我切换到jenkins的先前版本,并且它可以工作。我从2.3切换到1.581,然后它可以工作。
set BUILD_ID=dontKillMe nohup start yourFIle.bat
将此作为一行添加。 - Zhivko.Kostadinov