1. 程式人生 > >9.10 nohup:用戶退出系統進程繼續工作

9.10 nohup:用戶退出系統進程繼續工作

oot 目錄 顯示 rom .cn 退出登錄 tail 使用 輸出

nohup命令

  可以將程序以忽略掛起信號的方式運行起來,被運行程序的輸出信息將不會顯示到終端。 無論是否將nohup命令的輸出重定向到終端,輸出都將寫入到當前目錄的nohup.out文件中。如果當前目錄的nohup.out文件不可寫,則輸出重定向到$HOME/nohup.out文件中。

讓執行的命令在當前會話終止後繼續保持運行

正常情況下,如果用戶退出登錄或會話終止,則用戶正在執行並可持續一段時間的命令(非守護進程)將自動終止。使用nohup命令可以實現在用戶退出或當前會話終止後繼續保持運行,具體的例子如下:
[[email protected] ~]# nohup ping
g.cn nohup: 忽略輸入並把輸出追加到"nohup.out" #<==當前終端已經hang住,此時強制關閉當前終端(例如關閉該標簽或者Ss日客戶端工具),這個ping命令依然會在後臺運行。 # 但是Ctrl + C 會退出命令執行 [[email protected] ~]# ps -ef|grep ping root 1818 1 0 19:19 ? 00:00:00 ping g.cn root 1820 1797 0 19:19 pts/1 00:00:00 grep ping [[email protected]
~]# tail -f nohup.out 64 bytes from 203.208.40.79: icmp_seq=97 ttl=128 time=42.2 ms 64 bytes from 203.208.40.79: icmp_seq=98 ttl=128 time=42.7 ms 64 bytes from 203.208.40.79: icmp_seq=99 ttl=128 time=42.7 ms 64 bytes from 203.208.40.79: icmp_seq=100 ttl=128 time=42.7 ms 64 bytes from 203.208.40.79: icmp_seq=101 ttl=128
time=42.6 ms 64 bytes from 203.208.40.79: icmp_seq=102 ttl=128 time=42.4 ms 64 bytes from 203.208.40.79: icmp_seq=103 ttl=128 time=43.0 ms 64 bytes from 203.208.40.79: icmp_seq=104 ttl=128 time=50.7 ms 64 bytes from 203.208.40.79: icmp_seq=105 ttl=128 time=42.9 ms 64 bytes from 203.208.40.79: icmp_seq=106 ttl=128 time=43.0 ms
在工作中我們一般會配合&符運行nohup命令,讓程序直接在後臺運行:
[[email protected] ~]# nohup ping g.cn &
[1] 1855
[[email protected] ~]# nohup: 忽略輸入並把輸出追加到"nohup.out"
 
[[email protected] ~]# tail -f nohup.out
64 bytes from 203.208.40.95: icmp_seq=8 ttl=128 time=42.1 ms
64 bytes from 203.208.40.95: icmp_seq=9 ttl=128 time=43.3 ms
64 bytes from 203.208.40.95: icmp_seq=10 ttl=128 time=44.1 ms
64 bytes from 203.208.40.95: icmp_seq=11 ttl=128 time=42.5 ms
64 bytes from 203.208.40.95: icmp_seq=12 ttl=128 time=42.9 ms
64 bytes from 203.208.40.95: icmp_seq=13 ttl=128 time=42.6 ms
64 bytes from 203.208.40.95: icmp_seq=14 ttl=128 time=42.8 ms
64 bytes from 203.208.40.95: icmp_seq=15 ttl=128 time=42.8 ms
64 bytes from 203.208.40.95: icmp_seq=16 ttl=128 time=134 ms
64 bytes from 203.208.40.95: icmp_seq=17 ttl=128 time=42.8 ms
64 bytes from 203.208.40.95: icmp_seq=18 ttl=128 time=42.2 ms
64 bytes from 203.208.40.95: icmp_seq=19 ttl=128 time=43.2 ms
64 bytes from 203.208.40.95: icmp_seq=20 ttl=128 time=43.7 ms
64 bytes from 203.208.40.95: icmp_seq=21 ttl=128 time=42.0 ms

類似功能的命令還有screen和直接使用&符。

9.10 nohup:用戶退出系統進程繼續工作