在JENKINS上处理泄漏的文件描述符错误



当我配置一个作业来停止和启动tomcat服务器时,我得到这个错误:

处理泄漏的文件描述符。查看http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build

当我用谷歌搜索它时,我得到了一个推荐的解决方案set BUILD_ID=dontKillMe
这是正确的解吗?
如果是,我需要在哪里设置BUILD_ID?内部蚂蚁/后构建脚本?
有人能解释一下吗?

是,为进程创建假BUILD_ID告诉Jenkins在检测衍生进程时忽略该进程,因此该进程在完成任务后不会被杀死。

用法:在命令前输入BUILD_ID=dontKillMe,例如在Execute shell构建步骤中:

 BUILD_ID=dontKillMe nohup ./yourStartScript.sh &

注:参见nohup

默认情况下,Jenkins将在构建完成时杀死所有生成的进程。

要覆盖它,您需要创建环境变量BUILD_ID

转到Jenkins -> Manage Jenkins -> Configure System

现在在全局属性部分,在环境变量下,单击ADD按钮添加新的环境变量。给定name=BUILD_IDvalue=allow_to_run_as_daemon start_my_service
点击保存按钮。你就完成了。

现在生成过程将在构建完成后继续执行

当你启动你的jenkins服务器时,添加这行作为JAVA_ARGS参数(我把我的放在我的Ubuntu盒子的/etc/default/jenkins)

-Dhudson.util.ProcessTree.disable=true

你完成了

您正在调用Jenkins的命令,该命令会生成另一个进程-
tomcat-start命令结束,但它的子进程仍在运行
(这是您尝试启动的实际tomcat web-server)。

Jenkins有时会将这种情况视为一个可能的问题,
但是你提到的页面也解释了如何解决它
(简而言之:不要从Jenkins启动tomcat,除非你知道怎么做)。

尝试了不同的建议,但没有一个适合我。最后,我切换到以前版本的詹金斯,它工作。我从2.3切换到1.581,它工作了

相关内容

  • 没有找到相关文章

最新更新