jenkins中删除的文件上有很多打开的文件处理程序

jenkins中删除的文件上有很多打开的文件处理程序,jenkins,Jenkins,我正在使用jenkins运行管道groovy脚本。第一步是通过签出插件进行签出。签出发生在/source repo文件夹中 现在,当我使用lsof(它是一台linux机器)时,我会得到很多这样的开放文件处理程序: java 16932 1000 567r REG 202,80 91 7996215 <workspace>/source-repo@tmp/durable-a06b8b8d/output.txt

我正在使用jenkins运行管道groovy脚本。第一步是通过签出插件进行签出。签出发生在
/source repo
文件夹中

现在,当我使用lsof(它是一台linux机器)时,我会得到很多这样的开放文件处理程序:

java      16932     1000  567r      REG             202,80         91    7996215 <workspace>/source-repo@tmp/durable-a06b8b8d/output.txt (deleted)
def ret = sh script: "command", returnStdout: true
java 16932 1000 567r REG 202,80 91 7996215/来源-repo@tmp/耐用-a06b8b8d/output.txt(已删除)

随着时间的推移,它们在不断增加。。。为什么?我能做什么呢?

我发现了这个问题,它似乎与
sh
returnStdout:true
有关。所以我换了这样的电话:

java      16932     1000  567r      REG             202,80         91    7996215 <workspace>/source-repo@tmp/durable-a06b8b8d/output.txt (deleted)
def ret = sh script: "command", returnStdout: true


感觉有点不舒服,但现在我很好。

从1.14版(2017年6月15日)开始,持久任务插件似乎已经修复


我也有这个问题。能解决它吗?对我来说,我有一个周期性的工作,每5分钟运行一次,这些文件句柄不断上升,最终我没有打开的文件,不得不重新启动Jenkins。不知道为什么这些没有关闭。是的,我找到了一个解决办法。看看我的答案,谢谢你,内森。这也是我最终采取的方法,因为我还发现是sh的returnsDout属性造成的。我已经在这里开始了关于这个主题的讨论:并在Jira中对这张票发表评论,可能值得投票或根据您的经验发表评论: