2014-12-05 32 views
-2

我們有一個腳本,可以從bash控制檯運行chef-client。無法將ruby腳本中的「Thread」或「Fork」命令重定向到Jenkins

這個輸出應該被重定向到jenkins,它應該顯示廚師客戶端運行的日誌,這不會發生。

我們使用Thread.new和叉子來運行這個廚師的客戶端運行...

Thread.new {system "/usr/bin/knife ssh -x abc -P xyz \"role:#{somerole}\" \"sudo chef-client -o role[#{somerole}]\" > test.log 2>&1 &"} 

如何「主題」和「叉」命令的記錄,可通過詹金斯顯示?

回答

1

我的猜測:

&在你的命令,使得它在後臺運行,從SSH終端分離的結束,所以一旦它被啓動,並終止了連接結束。

在您的命令中,您將輸出重定向到名爲test.log的文件,因此終端上沒有任何內容。

如果你想登錄到一個文件,配置client.rb登錄到它而不是重定向到一個文件,廚師將記錄和輸出到屏幕上同時。

我不能告訴Thread.new,但已經有2個原因沒有看到任何與你顯示的命令。

+0

非常感謝你Tensibai,我在沒有&最後嘗試過它,它不工作...我應該把它拿走,而發佈的問題... Thread.new {}產生任何終端或外殼或一些這樣的事情.. – 2014-12-07 07:52:28

+0

我說'&'不是唯一的問題,重定向到一個文件不會向終端發送任何東西。 – Tensibai 2014-12-10 10:15:56