在背景執行程式時 nohup 和 screen 不工作?

在背景執行程式時 nohup 和 screen 不工作?

我不知道為什麼,但我screen在伺服器上運行的命令自行停止。因此我嘗試使用nohup.例如:

nohup bzcat a.bz

但跑步時nohup它給了我

nohup: ignoring input and appending output to `nohup.out'

另外,為了恢復我運行:fg這給了我:

-bash: fg: current: no such job

答案1

來自的訊息nohup完全沒問題。它只是解釋它在做什麼。當您使用 nohup 執行程式時,它不再使用您在終端機上鍵入的內容,也不會在終端機上輸出任何內容。nohup將程式的輸出重定向到名為nohup.out.

nohup這與在背景運行的程式有很大不同(在背景運行會是這樣bzcat a.bz &)。當程式在背景運行時,它確實會忽略來自終端的輸入(只有在前台運行的程式才能使用您在終端機中輸入的內容,這就是為什麼它被稱為“前台”進程,因為它是您實際交互的進程)與)但它確實輸出到終端。可以在 nohup 模式和背景執行程式。事實上,通常都是這樣nohup使用的。如果您有nohup一個程式但沒有在背景啟動它,則您無法呼叫fg它,因為它實際上不是後台的。它只是不輸出到終端。

nohup允許您以忽略訊號的模式運行程式HUPHUP當您關閉終端時,終端通常會發送訊號。因此,當您關閉啟動它的終端時,以 nohup 模式在背景執行的程式將不會停止。

相關內容