Linux 工作管理 job control

2022-04-28 01:06:17 字數 2195 閱讀 4451

fg , bg

有時,命令需要很長的時間才能執行完成。對於這種情況,我們使用『bg』命令可以將任務放在後台執行,而用『fg』可以調到前台來使用。

我們可以通過『&』在後台啟動乙個程式:

find . -name *iso > /tmp/res.txt & 

乙個正在執行的程式也可以通過「ctrl+z」和「bg」命令組合放到後台執行。

find . -name *iso > /tmp/res.txt & - 啟動乙個程式 

ctrl+z - 掛起當前執行程式 

bg - 將程式放到後台執行 

我們可以使用『jobs』命令列出所有後台程序。

jobs 

使用『fg』命令可以將後台程式調到前台執行。

fg %程序id 

nohup方式:

但是我們很多程式並不象mysqld一樣可以做成守護程序,可能我們的程式只是普通程式而已,一般這種程式即使使用 & 結尾,如果終端關閉,那麼程式也會被關閉。為了能夠後台執行,我們需要使用nohup這個命令,比如我們有個start.sh需要在後台執行,並且希望在後台能夠一直執行,那麼就使用nohup: 

nohup /root/start.sh & 

原程式的的標準輸出被自動改向到當前目錄下的nohup.out檔案,起到了log的作用。

centos 7 遇到的問題記錄:

加nohup的效果:

nohup  ./sleep500.sh  2>&1     #預設輸出到nohup.out

nohup  ./sleep500.sh  2>&1     #預設輸出到nohup.out

nohup  ./sleep500.sh > my.file 2>&1 &   #重定向到my.file

nohup  ./sleep500.sh > my.file 2>&1

執行命令後,關閉終端或者exit,程式都能繼續執行,最終列印輸出到檔案中。

而不加nohup的效果:

./sleep500.sh > my.file 2>&1 &   #重定向到my.file

./sleep500.sh > my.file 2>&1

在執行命令後,關閉終端和exit的效果是不一樣的。

關閉終端:則程式 直接被終端,結果列印不會輸出到檔案中;

exit:則程式仍會繼續執行,結果列印會輸出到檔案中。

nohup 命令 

用途:不結束通話地執行命令。 

語法:nohup command [ arg ... ] [ & ] 

描述:nohup 命令執行由 command 引數和任何相關的 arg 引數指定的命令,忽略所有結束通話(sighup)訊號。在登出後使用 nohup 命令執行後台中的程式。要執行後台中的 nohup 命令,新增 & ( 表示"and"的符號)到命令的尾部。 

無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 檔案中。如果當前目錄的 nohup.out 檔案不可寫,輸出重定向到 $home/nohup.out 檔案中。如果沒有檔案能建立或開啟以用於追加,那麼 command 引數指定的命令不可呼叫。如果標準錯誤是乙個終端,那麼把指定的命令寫給標準錯誤的所有輸出作為標準輸出重定向到相同的檔案描述符。 

退出狀態:該命令返回下列出口值: 

126 可以查詢但不能呼叫 command 引數指定的命令。 

127 nohup 命令發生錯誤或不能查詢由 command 引數指定的命令。 

否則,nohup 命令的退出狀態是 command 引數指定命令的退出狀態。 

nohup命令及其輸出檔案 

nohup命令:如果你正在執行乙個程序,而且你覺得在退出帳戶時該程序還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶/關閉終端之後繼續執行相應的程序。nohup就是不掛起的意思( n ohang up)。 

該命令的一般形式為:nohup command & 

使用nohup命令提交作業 

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

nohup command > myout.file 2>&1 & 

linux工作管理

jobs 檢視工作中的程式。ls 命令後加 表示將命令執行加入後台 建議 後台執行持續執行的程式 不能後台執行互動程式 執行 ctrl z 放入後台 不執行 ctrl c fg 工作號 重新啟動後台停止的程式 後台執行程式執行完回自動彈出 bg 工作號 恢復後台執行 ctrl 大部分終端後台程式繫結...

linux工作管理

指的是在單個登入終端 也就是登入的 shell 介面 同時管理多個工作的行為。也就是說,我們登陸了乙個終端,已經在執行乙個操作,那麼是否可以在不關閉當前操作的情況下執行其他操作呢?當然可以,我們可以再啟動乙個終端,然後執行其他的操作。不過,是否可以在乙個終端執行不同的操作呢?這就需要通過工作管理來實...

Linux 工作管理

工作管理指的是在單個登入終端 也就是登入的 shell 介面 同時管理多個工作的行為。只要將需要操作的命令放入前台,其他命令放入後台即可。前台是指當前可以操控和執行命令的這個操作環境 後台是指工作可以自行執行,但是不能直接用 ctrl c 快捷鍵來中止它,只能使用 fg bg 來呼叫工作。當前的登入...