Linux 使用nohup不掛斷地運行命令(一直運行)

語法:

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命令的一個參數,可以理解爲“強殺”或者“徹底殺死進程”,比起不帶參數殺傷力更強。

參考:【Linux命令】nohup和&差異,查看進程和終止進程!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章