在linux終端或控制檯上執行命令時,可能不但願腳本佔住屏幕須要在後臺執行腳本,有幾種方法讓腳本在後臺執行:linux
&shell
當在前臺運行某個做業時,終端被該做業佔據;能夠在命令後面加上& 實現後臺運行。例如:sh test.sh &code
須要用戶交互的命令不要放在後臺執行,不過,做業在後臺運行同樣會將結果輸出到屏幕上,若是放在後臺運行的做業會產生大量的輸出,最好使用下面的方法把它的輸出重定向到某個文件中:進程
command > out.file 2>&1 &
這樣,全部的標準輸出和錯誤輸出都將被重定向到一個叫作out.file 的文件中。it
成功地提交進程之後,會顯示出一個進程號,能夠用它來監控或殺死該進程。(ps -ef | grep 進程號 或者 kill -9 進程號)class
nohuptest
使用&命令後,做業被提交到後臺運行,當前控制檯沒有被佔用,可是一但把當前控制檯關掉(退出賬戶時),做業就會中止運行。nohup命令能夠在你退出賬戶以後繼續運行相應的進程。nohup就是不掛起的意思( no hang up)。該命令的通常形式爲:後臺
nohup command &
使用nohup命令提交做業,那麼在缺省狀況下該做業的全部輸出都被重定向到一個名爲nohup.out的文件中,除非另外指定了輸出文件:監控
nohup command > myout.file 2>&1 &
使用nohup以後有可能在當前帳戶非正常退出或結束的時候,命令仍是會本身結束。因此在使用nohup命令後臺運行後,須要使用exit正常退出當前帳戶,這樣才能保證命令一直在後臺運行。基礎
command >out.file 2>&1 &