Linux後台執行命令

2021-09-29 03:15:13 字數 1375 閱讀 3211

當在前台執行某個作業時,shell終端會被該作業一直占用,我們可以在命令後面加上&實現命令在後台執行,例如:sh test.sh &

但如果放在後台執行的作業會產生大量的輸出,最好使用下面的方法把它的輸出重定向到某個檔案中:

command

> log.out 2>

&1 &

這樣,所有的標準輸出和錯誤輸出都將被重定向到乙個叫做log.out的檔案中。

使用&命令後,作業被提交到後台執行,雖然當前shell終端沒有被占用,但是有可能一但把當前shell終端關掉(退出帳戶時),作業就會停止執行。那麼怎麼確定終端關閉時,作業是否會停止了,可以通過如下命令檢視:

$ shopt

|grep huponexit

如果輸出的是huponexit on就代表是shell終端退出時,會傳送hangup結束通話訊號給子程序,子程序收到hangup訊號後也就退出了。

當作業提交成功以後,就會輸出乙個程序號,可以用它來監控該程序,或殺死該程序:(ps -ef | grep 程序號或者kill -9 程序號

2>&1是將錯誤提示資訊的輸出重定向到標準輸出,而這裡的標準輸出已經重定向到log.out檔案,也就是說標準的錯誤提示也直接輸出到log.out檔案中。

nohup命令可以在退出shell終端之後繼續執行相應的程序。nohup就是no hang up(不掛起)的縮寫,表示不傳送hangup訊號。該命令的一般形式為:

nohup

command

&

如果使用nohup命令提交作業,那麼在預設情況下該作業的所有輸出都被重定向到乙個名為nohup.out的檔案中,除非另外指定了輸出檔案:

nohup

command

> myfile.out 2>

&1 &

ctrl+z命令可以將當前的前台任務轉後台,放到後台任務池中,雖然此時前台視窗就變成非阻塞狀態了,但轉過去的任務在後台預設是凍結狀態,所以還需要使用bg命令將後台凍結的任務再次執行起來,bg命令的用法如下:

bg 任務id   # 可以使用jobs命令檢視任務id

linux命令後台執行

有兩種方式 1.command 後台執行,你關掉終端會停止執行 2.nohup command 後台執行,你關掉終端也會繼續執行 1 root bin rsync.sh 用 jobs 命令檢視正在執行的任務 jobs 1 running root bin rsync.sh 如果想把它調回到前台執行,...

linux命令後台執行

有兩種方式 1.command 後台執行,你關掉終端會停止執行 2.nohup command 後台執行,你關掉終端也會繼續執行 1 root bin rsync.sh 用 jobs 命令檢視正在執行的任務 jobs 1 running root bin rsync.sh 如果想把它調回到前台執行,...

linux命令後台執行

有兩種方式 1.command 後台執行,你關掉終端會停止執行 2.nohup command 後台執行,你關掉終端也會繼續執行 1 root bin rsync.sh 用 jobs 命令檢視正在執行的任務 jobs 1 running root bin rsync.sh 如果想把它調回到前台執行,...