nohup 命令
用途
不掛斷地運行命令。
語法
nohup Command [ Arg ... ] [ & ]
描述
nohup 命令運行由 Command 參數和任何相關的 Arg 參數指定的命令,忽略所有掛斷(SIGHUP)信號。在注銷後使用 nohup 命令運行後台中的程序。要運行後台中的 nohup 命令,添加 & ( 表示“and”的符號)到命令的尾部。
無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 文件中。如果當前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out 文件中。如果沒有文件能創建或打開以用於追加,那麼 Command 參數指定的命令不可調用。如果標准錯誤是一個終端,那麼把指定的命令寫給標准錯誤的所有輸出作為標准輸出重定向到相同的文件描述符。
退出狀態
該命令返回下列出口值:
126 可以查找但不能調用 Command 參數指定的命令。
127 nohup 命令發生錯誤或不能查找由 Command 參數指定的命令。
否則,nohup 命令的退出狀態是 Command 參數指定命令的退出狀態。
示例
1. 要運行注銷後後台中的命令,請輸入:
$ nohup find / -print &
輸入該命令後,顯示如下:
670
$ 輸出發送到 nohup.out
進程 ID 號更改為 & (表示“and”的符號)啟動的後台進程的 ID 號。消息 輸出發送到 nohup.out 通知您來自 find / -print 命令的輸出在 nohup.out 文件中。查看這些消息後可以注銷,即使 find 命令仍在運行。
2. 要運行後台中的命令並且把標准輸出重定向到一個不同的文件,請輸入:
$ nohup find / -print >filenames &
本例運行 find / -print 命令並且把輸出存儲到命名為 filenames 的文件中。現在只顯示進程 ID 和提示:
677
$
因為 nohup 命令需要片刻時間來啟動 Command 參數指定的命令,在注銷前請等待。如果太快注銷,Command 參數指定的命令可能根本沒運行。一旦 Command 參數指定的命令啟動,注銷就不會對其產生影響。
3. 要運行不止一條命令,請使用 shell 過程。例如,如果寫 shell 過程:
neqn math1 | nroff > fmath1
且命名它為 nnfmath1 文件,那麼可以為 nnfmath1 文件中所有命令運行 nohup 命令,命令為:
nohup sh nnfmath1
4. 如果給 nnfmath1 文件分配執行許可權,那麼可以通過發出如下命令得到相同的結果:
nohup nnfmath1
5. 要在後台中運行 nnfmath1 文件,請輸入:
nohup nnfmath1 &
6. 要在 Korn shell 中運行 nnfmath1 文件,請輸入:
nohup ksh nnfmath1