讓程序在linux後臺運行的方法
常見用法:
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後臺運行的方法