linux 系統shell運行程序不退出


如果通過ssh遠程連接到linux系統終端,在shell下執行程序。假如程序名稱為app,且程序本身會一直執行不退出,程序執行需要參數文件paramfile。

當我們用 

./app paramfile 

 

命令運行程序后關閉ssh連接退出shell,會導致app程序也跟着退出。如果不想app退出,怎么辦?

我們可以使用nohup,命令如下

nohup ./app paramfile  &

 

這樣當我們關閉終端后,再連接上去就會發現app還在執行。最后的 & 是讓進程在后台運行,不占用當前終端,使得我們可以執行其他命令。日志會輸出到當前目錄下的nohup.out

有時候我們的程序會在終端打印一些信息,如果不想這樣,我們可以把他們重定向。另外還有nohup.out存在,運行很久以后nohup.out文件會很大,可以使用如下命令

nohup ./app paramfile >/dev/null 2>&1 &

 

>/dev/null 把標准輸出重定向到/dev/null(這是一個特殊的設備文件,寫入到它的東西,全都不見了),> 如果左邊沒有東西,默認就是標准輸出。2>&1 把標准錯誤輸出重定向到標准輸出

0 是標准輸入(STDIN),1 是標准輸出(STDOUT),2 是標准錯誤輸出(STDERR


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM