2017-04-26 57 views
1

我使用詹金斯管道运行Groovy脚本。第一步是通过结账插件进行结账。结帐发生在<workspace>/source-repo文件夹中。很多打开的文件句柄上删除的文件在詹金斯

现在,当我做lsof的(这是一个Linux机器),我得到这样一个很多打开的文件句柄:

java  16932  1000 567r  REG    202,80   91 7996215 <workspace>/[email protected]/durable-a06b8b8d/output.txt (deleted) 

他们正在建立随着时间的推移,为什么?我能做什么?

+0

我有这个问题了。解决它的任何运气?对于我来说,我有一个每5分钟运行一次的重复性作业,这些文件句柄只是上升和最终,最终我用完了打开的文件,并且必须重新启动Jenkins。不知道为什么这些没有被关闭。 – Kieran

+0

是的,我找到了解决方法。看到我的答案。 – Nathan

回答

1

我发现这个问题,这似乎是结合returnStdout: true有关sh。所以我换成这样的电话:

def ret = sh script: "command", returnStdout: true 

sh "command > output.txt" 
def ret = readFile "output.txt" 
sh "rm output.txt" 

感觉有点哈克,但现在我很好。

+0

谢谢Nathan。这也是我最终采取的方法,因为我也发现它是sh的returnStdout属性是罪魁祸首。 我在这里开始了关于这个问题的讨论:https://groups.google.com/forum/#!topic/jenkinsci-users/j8CfFDx25Bg 并把评论这张票在JIRA中,可能价值上表决或与您的经历评论: https://issues.jenkins-ci.org/browse/JENKINS-43639?focusedCommentId=302114&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-302114 – Kieran