語法:
nohup Command [ Arg … ] [ & ]
用途:不掛斷地運行命令。
無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 文件中。
如果當前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out 文件中。
如果沒有文件能創建或打開以用於追加,那麼 Command 參數指定的命令不可調用。
退出狀態:該命令返回下列出口值:
126 可以查找但不能調用 Command 參數指定的命令。
127 nohup 命令發生錯誤或不能查找由 Command 參數指定的命令。
否則,nohup 命令的退出狀態是 Command 參數指定命令的退出狀態。
從網絡資料可知,nohup命令格式,用法說如如上。
最後的&代表用途是讓進程在“後臺運行”。 一般情況下nohup和&都是組合使用。
舉例:
1. 用nohup和&創建進程
nohup php a.php &
[1] 5701
[root@AY140716152350Z ~]# nohup: ignoring input and appending output to `nohup.out'
執行命令後會返回進程ID:5701,在當前目錄創建一個nohup.out文件。
2. 查看這個進程。
[root@AY140716152350Z ~]# jobs -l
[1]+ 5701 Running nohup php a.php &
Jobs -l jobs命令只看當前終端生效的,關閉終端後,其他終端就無效了
[root@AY140716152350Z ~]# ps -aux|grep index.php
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 5701 0.0 0.5 195876 10284 pts/0 S 11:34 0:00 php a.php
root 3582 0.0 0.0 103188 880 pts/0 S+ 11:39 0:00 grep index.php
[root@AY140716152350Z ~]# ps -aux|grep index.php|grep -v grep
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 5701 0.0 0.5 195876 10284 pts/0 S 11:34 0:00 php a.php
如果你斷開終端之後,再次登錄,可以使用 ps -aux命
a:顯示所有程序
u:以用戶爲主的格式來顯示
x:顯示所有程序,不以終端機來區分
通過添加 |grep -v grep 可以排除自身進程。
通過 ps -x,就能查看到所有的進程,自然能查看到nuhup命令所在的進程了
3. 結束進程
[root@AY140716152350Z ~]# kill -9 3540
如果需要結束進程,只需用kill命令,參數就是進程號。這個創建的時候可以知道。通過,第二部的命令也可以獲取。
-9 是kill命令的一個參數,可以理解爲“強殺”或者“徹底殺死進程”,比起不帶參數殺傷力更強。