當在前台執行某個作業時,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 如果想把它調回到前台執行,...