nohup 指令
用途
在沒有 hangups 的情況下執行指令。
語法
諾胡普 { -p pid | 指令 [ 阿爾格 ... ] [ & ] }
說明
nohup 指令會執行 Command 參數及任何相關 Arg 參數所指定的指令,忽略所有掛斷信號 (SIGHUP) 或修改使用 -p 選項指定的處理程序以忽略所有 SIGHUP 信號。 SIGHUP 是在處理程序的控制端關閉時傳送給處理程序的信號。
在登出之後,也可以使用 nohup 指令在背景中執行程式。 To run a nohup command in the background, add an & (ampersand) to the end of the command.
如果標準誤顯示在終端機上,且標準輸出既未顯示在終端機上,也未傳送至使用者指定的輸出檔 (預設輸出檔為 nohup.out) ,則不會建立或開啟 ./nohup.out 及 $HOME/nohup.out 檔案來附加錯誤訊息。 nohup 指令不會執行以 nohup 指令指定的參數公用程式,並以結束狀態 127 結束。
附註: 不能同時指定 -p pid 和 指令 選項。
當使用-p pid 旗標時,指定處理程序的輸出將不會重新導向至 nohup.out 檔案。旗標
項目 | 說明 |
---|---|
-p pid | pid 是執行中處理程序的處理程序 ID。 nohup 指令會修改指定的處理程序,以忽略所有斷線 (SIGHUP) 信號。 |
結束狀態
這個指令會傳回下列結束值:
項目 | 說明 |
---|---|
126 | 找到 Command 參數指定的指令,但無法呼叫。 |
127 | nohup 指令中發生錯誤,或找不到 指令 參數指定的指令。 |
否則, nohup 指令的結束狀態是由 指令 參數指定之指令的結束狀態。
範例
- 若要在登出之後於背景中執行指令,請輸入:
在您輸入這個指令之後,會顯示下列:$ nohup find / -print &
The process ID number changes to that of the background process started by & (ampersand). 該訊息Sending output to nohup.out通知您 find/-print 指令的輸出位於 nohup.out 檔案中。 您可以在看到這些訊息之後登出,即使 find 指令仍在執行中。670 $ Sending output to nohup.out
- 若要在背景中執行指令,並將標準輸出重新導向至不同的檔案,請輸入:
此範例會執行 find/-print 指令,並將其輸出儲存在名為filenames. 現在只會顯示程序 ID 和提示:$ nohup find / -print >filenames &
在登出之前等待,因為nohup 指令需要一些時間來啟動 指令 參數所指定的指令。 如果您太快登出,則 指令 參數指定的指令可能根本不會執行。 一旦 Command 參數指定的指令啟動,登出並不會影響它。677 $
- 若要執行多個指令,請使用 Shell 程序。 例如,如果您撰寫 Shell 程序:
並將它命名為 nnfmath1檔案,您可以針對下列項目中的所有指令執行 nohup 指令:nnfmath1具有下列指令的檔案:neqn math1 | nroff > fmath1
nohup sh nnfmath1
- 如果您將執行權指派給nnfmath1檔案,您可以發出下列指令來取得相同的結果:
nohup nnfmath1
- 若要執行nnfmath1file in the background , enter:nohup nnfmath1
& - 若要執行nnfmath1檔案,請輸入:
nohup ksh nnfmath1
- 若要讓執行中處理程序忽略所有掛斷信號,請輸入:
nohup -p 161792