2013-06-03 154 views
1

我有一個bash腳本,我正在從Jenkins的構建步驟調用。在這個bash腳本是調用背景不同的腳本,比如nohup命令:Bash腳本不輸出nohup.out + Jenkins

#!/bin/bash 
nohup otherScript.sh & 

後構建步驟完成後,我去那裏應該已經創建的nohup.out的路徑,但有空空如也。有關正在發生的任何想法?

+1

利用詹金斯在後臺運行一個命令你打敗它的目的,這是因爲它們運行監控腳本。 – Gonen

回答

5

您應該確保輸出進入您的構建工作區。這將避免其他目錄的權限問題。

nohup otherScript.sh > $WORKSPACE/scriptOutput.txt 2>&1 & 
3

man nohup引用:

如果標準輸入是終端,從/ dev/null的重定向它。如果標準輸出是一個終端,請將輸出追加到nohup.out(如果可能),否則爲$HOME/nohup.out。如果標準錯誤是終端,則將其重定向到標準輸出。要將輸出保存到FILE,請使用nohup COMMAND > FILE

運行從詹金斯命令可能意味着STDOUT不是終端,因此,不創建nohup.out。作爲gareth_bowles已經建議,應該將輸出到文件重定向一個定義的路徑:

nohup script.sh >/path/to/output.log 2>&1 &