1. 程式人生 > >讓程序在linux後臺運行的方法

讓程序在linux後臺運行的方法

tail class 兩個 參考 test tails code 設備 就是

常見用法:

nohup ./Thriftc & > /dev/null &

 在linux後臺運行Thriftc程序,並將其輸出重定向到空設備:/dev/null,也就是將程序輸出全部丟棄。

nohup COMMAND > out.log 2>&1 &

 在linux後臺運行COMMAND命令,將標準輸出重定向到out.log文件,標準錯誤也重定向到out.log文件(標準錯誤重定向到標準輸出,再將標準輸出重定向到out.log)。

上邊的示例涉及到兩個命令:nohup和&,下面依次進行解釋。

nohup

 nohup,"no hangup" 的縮寫,意思是“不掛斷”,也就是不掛斷地運行命令。

 命令格式:

nohup COMMAND [ARG]... 

 運行指定的命令,忽略所有掛起(SIGHUP)信號。使用nohup運行命令可以使命令永久的執行下去,在用戶註銷/關閉終端之後仍然繼續運行。值得註意的是,命令或進程並沒有在後臺運行。

 如果沒有將 nohup 命令的輸出進行重定向,輸出將追加到當前目錄的 nohup.out 文件中。如果當前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out 文件中。

&

 & 是指在後臺運行。將&添加到命令的尾部,命令就會在後臺運行,但當用戶退出(掛起)的時候,命令自動也跟著退出。

後臺持續運行

 要讓程序在後臺持續運行,要將nohup和&結合起來使用。

例如:

sh test.sh &   

 將 test.sh 任務放到後臺,關閉xshell,對應的任務也跟著停止。

nohup sh test.sh   

 將 test.sh 任務放到後臺,關閉標準輸入,終端不再能夠接收任何輸入(標準輸入),重定向標準輸出和標準錯誤到當前目錄下的nohup.out文件,即使關閉xshell,當前session依然繼續運行。

nohup sh test.sh  &  

 將 test.sh 任務放到後臺,但是依然可以使用標準輸入,終端能夠接收任何輸入,重定向標準輸出和標準錯誤到當前目錄下的nohup.out文件,即使關閉xshell,當前session依然繼續運行。

參考:

  https://blog.csdn.net/u011095110/article/details/78666833

讓程序在linux後臺運行的方法