方便快捷—活用Linux作業系統的背景工作

來源:互聯網
上載者:User

  文/佚名

  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]”接著繼續執行下去。這樣不但可更正錯誤檔案,而且不用將已處理完的任務重新再執行一次。

  方便之處

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.