歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

shell退出後後台程序保持運行

shell退出後後台程序保持運行   在liunx上,如果想讓一個進程在後台運行,最直接的方法是用&符號.  比如ping www.baidu.com &    但是這樣一來,這個進程便成為了當前shell的一個job,在shell退出時,job會收到一個信號,也隨之停止.  處理這個問題,可以使用nohup命令,讓job忽略shell的退出信號,也可以采用其他方式.    既然後台命令作為shell的子進程會在shell退出時被殺掉,那麼只要不讓後台命令作為shell的子進程即可.比較簡單的方式是利用subshell來調用後台命令.  比如寫個start.sh    #!/bin/bash  ping www.baidu.com &    然後在shell中調用start.sh.    ./start.sh    我猜測雖然start.sh是ping命令的父進程,但是start.sh運行完畢就退出了,ping命令成了孤兒進程,會被init進程收養.所以退出shell也不會導致ping命令中斷    
Copyright © Linux教程網 All Rights Reserved