2017-04-26 35 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