妙用Linux 的後台任務

2021-08-04 11:11:51 字數 1734 閱讀 8636

linux作為乙個多工環境,允許使用者同時執行多項任務,例如檢視系統情況、備份資料、編輯檔案和列印檔案等。

對於耗時長的任務不應該讓它在前台任務中執行,而應該交給後台任務去執行。這樣前台任務可繼續正常運作其它的操作,不用等待。示例如下:

# find / -name testing &

# fg

如果想要讓上面例子中的任務轉為後台執行,就使用「& 」。不過,由於是後台執行的,所以該程式的輸出並不會出現在螢幕上。當使用者將數個任務放到後台任務執行時,要如何去管理這些後台任務?怎麼知道後台任務的執**況?如何終止或暫時停止後台任務的執行?下面就來逐一說明。

舉例如下:

# du -a /user > user.data &

[1] 237

# find / -name core -type f -ls > core.data &

[2] 238

如上通過「&」命令將三個任務放到後台中執行。用命令「jobs -l」顯示後台任務的執**況,舉例如下:

#jobs -l

[1] + 237 running du -a /user > user.data

[2] - 238 running find / -name core -type f -ls > core.data

首先介紹乙個任務控制特有的名詞:當前任務。上面的當前任務是「du -a /user > user.data」,因為後台任務號碼是「[1]」。如果當第乙個後台任務順利執行完畢,第二個後台任務還在執行中時,當前任務便會自動變成後台任務號碼「[2]」的後台任務。所以可以得出一點,即當前任務是會變動的。當使用者輸入「fg」、「bg」和「stop」等命令時,如果不加任何引號,則所變動的均是當前任務。

命令總是有出錯的時候。當出現這種情況時,使用者可用shell的內建命令「kill」來結束任務。假如想要結束後台任務「du -a /user > user.data」,可以用下面的命令:

# kill 237

# kill %1

其中,237為第乙個後台任務的pid號碼。如果想終止第二個後台任務,以下兩種方法均可:

方法一:#kill %2

方法二:# kill %-

shell的內建命令「stop」可用來暫停後台任務。示例如下:

stop % (停止第乙個後台任務的執行)

stop %n (停止第n個後台任務的執行)

了解命令「stop」的使用後,便可將想要停止的後台任務暫停執行。例如使用者要將乙個年度報表用 「nroff」命令整理,因為檔案量十分龐大,所以將它放到後台中執行。命令如下:

#nroff -ms moonth[1-12].acct > year2003.acct &

[4] 240

當命令處理到一半的時候發覺moonth12.acct檔案是舊的需要更新,這時用「jobs」命令檢視到後台任務「[4]」還在執行中,但無法知道命令已經處理到哪乙個月份。此時可輸入下面的命令,將後台任務「[4]」先暫停執行:

#stop %4

然後檢視檔案year2003.acct的尾部判斷是否已經處理到12月。如果還沒有執行到,那麼可以將moonth12.acct檔案的資料更新,再用命令「bg」將已被暫時停止執行的後台任務「[4]」接著繼續執行下去。這樣不但可更正錯誤檔案,而且不用將已處理完的任務重新再執行一次。

前台、後台任務確實可以給日常操作帶來方便。因為,我們在日常操作中肯定會遇到同一時間要進行多個操作。這個時候如果不使用前台任務和後台任務,那麼將要花費很多時間。熟練運用前台和後台任務能達到「時」半功倍。

Linux 後台任務

1 我想把updatedb命令 用於重新建立整盤索引的命令 放在後台執行。updatedb 1 23336注釋 在所要執行的命令後面加上空格,再加上 符號即可實現後台執行。所返回的 1 表示這是第乙個你放到後台的任務。23336是這個任務的程序號。2 我執行updatedb時忘了加 了,這下我怎麼辦...

活用Linux的後台任務

linux作為乙個多工環境,允許使用者同時執行多項任務,例如檢視系統情況 備份資料 編輯檔案和列印檔案等。對於耗時長的任務不應該讓它在前台任務中執行,而應該交給後台任務去執行。這樣前台任務可繼續正常運作其它的操作,不用等待。示例如下 find name testing fg 如果想要讓上面例子中的任...

linux前後台任務切換

linux bash shell單一終端介面下,我們經常需要管理或同時完成多個作業,如一邊執行編譯,一邊實現資料備份,以及執行sql查詢等其他的任務。所有的上述的這些工作我們可以在乙個bash內實現,也就是說在同乙個終端視窗完成。下面主要描述了linux下前後台作業切換與管理以及作業在離線的情形下如...