![在背景執行程式時 nohup 和 screen 不工作?](https://rvso.com/image/31668/%E5%9C%A8%E8%83%8C%E6%99%AF%E5%9F%B7%E8%A1%8C%E7%A8%8B%E5%BC%8F%E6%99%82%20nohup%20%E5%92%8C%20screen%20%E4%B8%8D%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
我不知道為什麼,但我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
允許您以忽略訊號的模式運行程式HUP
。HUP
當您關閉終端時,終端通常會發送訊號。因此,當您關閉啟動它的終端時,以 nohup 模式在背景執行的程式將不會停止。