2011-08-31 372 views
0

正試圖在後臺運行nohup進程。該進程正在成功解壓,但由於某種原因,它在我啓動進程的位置創建了nohup.out文件。如何在後臺運行linux進程並記錄nohup輸出

nohup bash -c "./manage.py celeryd -B -E -l DEBUG &> ../../logs/celeryd_beat.nohup &> ../../logs/celeryd_beat.err" & 

有沒有一種方法,所以我可以讓nohup的輸出到../../logs/celeryd_beat.nohup?

問候,

回答

2

嘗試

nohup bash -c "./manage.py celeryd -B -E -l DEBUG > ../../logs/celeryd_beat.nohup 2> ../../logs/celeryd_beat.err" & 
0

當然,如果你看一下手冊頁nohup它說

要輸出保存到文件中,使用'nohup命令> FILE」 。

(至少這是在我的系統上,但你應該檢查看你的是否是相同的)。所以像

nohup bash -c "..." >../../logs/celeryd_beat.nohup 

應該爲你工作。 (我忽略你的命令引號之間,但你當然應該實際上包括它,當你做到這一點)

編輯:其實,現在我注意到你重定向的Python腳本本身的標準輸出和標準錯誤(如果你想讓他們去單獨的文件,你應該使用>2>--請參閱Jim的回答),你可能只想丟棄nohup本身的輸出,它本身不應該包含任何內容。因此,在這種情況下,你可以做

nohup bash -c "..." >/dev/null 
0

這是一個nohup功能,輸出保存到nohup.out,如果你不把它重定向。由於您似乎已經保存了所有您想要的輸出,因此您可以在最後加上>/dev/null 2>&1,即在最後&之前。 (但是外面的bash -c是什麼?看起來完全沒有必要。)

相關問題