2015-02-05 2571 views
2

我有一個運行在Linux服務器上的代碼。由於需要花費數小時才能運行,因此我必須使用nohup來確保我的代碼仍在運行,以免發生與服務器的連接。再次,因爲我不得不等待幾個小時才能看到結果,所以我定義了一個計數器來打印出我的代碼進度(%)。如果我失去與服務器的連接或關閉終端,那麼我可以看到代碼仍在運行的唯一方法是使用top。有什麼方法可以再次看到輸出控制檯(顯示進度的消息)?如何在運行nohup命令後看到輸出控制檯?

+2

爲什麼不使用[GNU屏幕](http://www.gnu.org/software/screen/),以便以後可以斷開連接並重新連接? – Barmar 2015-02-05 17:50:05

+0

我沒有嘗試過!讓我試試,我會保持你的發佈。謝謝。 – MTT 2015-02-05 17:53:44

+0

如果您對此有更多問題,它屬於superuser.com。這不是一個編程問題。 – Barmar 2015-02-05 17:58:04

回答

4

您可以將標準輸出和標準錯誤重定向到一個文件並查看該文件。例如:

如果標準輸出是一個終端,輸出附加到 '的nohup.out' 如果 可能, '$ HOME/nohup.out的' 否則:從手冊頁

nohup command 2>&1 > outputfile & 

注默認行爲。如果標準錯誤是一個 終端,將其重定向到標準輸出

所以真的是你可以運行

nohup command & 

然後查看的nohup.out

10

你可以看到實時輸出時間從另一個終端下面跑。

tail -f nohup.out 
+0

那就是要!謝謝。 – Guihgo 2017-03-04 21:06:12

+0

謝謝。這個命令只是打印實時,這是很好的。 – 2018-01-16 19:35:25