現在的位置: 首頁 > 算法 > 正文

Linux前后臺作業是什么? Linux前后臺作業有哪些常用命令

2020年05月25日 算法 ⁄ 共 3299字 ⁄ 字號 評論關閉

  Linuxbashshell單一終端界面下,我們經常需要管理或同時完成多個作業,如一邊執行編譯,一邊實現數據備份,以及執行SQL查詢等其他的任務。所有的上述的這些工作我們可以在一個bash內實現,也就是說在同一個終端窗口完成。下面學步園小編來講解下Linux前后臺作業是什么?Linux前后臺作業有哪些常用命令?

  Linux前后臺作業是什么

  前后臺作業實際上對應的也就是前后臺進程,因此也就有對應的pid。在這里我們統稱為作業。

  無論是前臺作業還是后臺作業,兩者都來自當前的shell,是當前shell的子程序。

  下面是兩者的定義。

  前臺作業:可以由用戶參與交互及控制的作業我們稱之為前臺作業。

  后臺作業:在內存可以自運行的作業,用戶無法參與交互以及使用[ctrl]+c來終止,只能通過bg或fg來調用該作業。

  Linux前后臺作業有哪些常用命令

  a、command&直接讓作業進入后臺運行

  b、[ctrl]+z將當前作業切換到后臺

  c、jobs查看后臺作業狀態

  d、fg%n讓后臺運行的作業n切換到前臺來

  d、bg%n讓指定的作業n在后臺運行

  e、kill%n移除指定的作業n

  "n"為jobs命令查看到的job編號,不是進程id。

  每一個job會有一個對應的job編號,編號在當前的終端從1開始分配。

  job編號的使用樣式為[n],后面可能會跟有"+"號或者"-"號,或者什么也不跟。

  "+"號表示最近的一個job,"-"號表示倒數第二個被執行的Job。注,"+"號與"-"號會隨著作業的完成或添加而動態發生變化。

  通過jobs方式來管理作業,當前終端的作業在其他終端不可見。

  3、演示后臺作業命令

  a、直接將作業放入到后臺(附加&符號)

  [email protected]:/tmp>tar-czvftemp.tar.gztempSYBO2SZ.dbf&

  [1]12500

  [email protected]:/tmp>tempSYBO2SZ.dbf

  [email protected]:/tmp>#此時可進行其它操作,作業一旦完成,會彈出如下的提示

  [1]+Donetar-czvftemp.tar.gztempSYBO2SZ.dbf

  [email protected]:/tmp>ls-hltrtemp*

  -rwxr-xr-x1robinoinstall490M2013-05-0217:48tempSYBO2SZ.dbf

  -rw-r--r--1robinoinstall174M2013-05-0217:50temp.tar.gz

  b、已經開始執行,但需要放入后臺(使用[ctrl]+z)

  [email protected]:/tmp>tar-czvftemp2.tar.gztempSYBO2SZ.dbf

  tempSYBO2SZ.dbf

  [1]+Stoppedtar-czvftemp2.tar.gztempSYBO2SZ.dbf

  [email protected]:/tmp>jobs

  [1]+Stoppedtar-czvftemp2.tar.gztempSYBO2SZ.dbf

  #下面同時發布兩個作業,并且在中途按下[ctrl]+z以便將當前作業提交到后臺

  [email protected]:/tmp>find/u02-typef-size+100000k

  [email protected]:/tmp>find/-typef-size+100000k

  #再次查看當前的jobs時,jobs管理器里出現了3個處于stopp狀態的job

  [email protected]:/tmp>jobs

  [1]Stoppedtar-czvftemp2.tar.gztempSYBO2SZ.dbf

  [2]-Stoppedfind/-typef-size+100000k

  [3]+Stoppedfind/u02-typef-size+100000k

  [email protected]:/tmp>jobs-l#使用-l參數查看當前shell下所有的作業以及對應的jobnumber,進程pid

  [1]32682Stoppedtar-czvftemp2.tar.gztempSYBO2SZ.dbf

  [2]-32687Stoppedfind/u02-typef-size+100000k

  [3]+32707Stoppedfind/-typef-size+100000k

  #下面通過pid可以查看到對應的進程信息

  [email protected]:/tmp>ps-ef|grep32707|grep-vgrep

  robin3270732095009:48pts/100:00:00find/-typef-size+100000

  [email protected]:/tmp>tty#當前終端的信息為pts/1

  /dev/pts/1

  #打開另外一個終端

  [email protected]:~>tty

  /dev/pts/3

  [email protected]:~>jobs#此時可以看到jobs命令無任何返回

  [email protected]:~>ps-ef|grep32707|grep-vgrep#僅僅根據進程id可以找到對應的作業

  robin3270732095009:48pts/100:00:00find/-typef-size+100000

  #由上可知,對于當前shell下的jobs,僅當前shell(終端)可見

  c、將后臺作業切換到前臺(fg命令)

  [email protected]:/tmp>fg#省略Jobnumber的情形,則將缺省的job切換到前臺

  find/-typef-size+100000k

  /u02/database/old/CNMMBOBK/undo/undotbsCNMMBOBK.dbf

  ......

  [ctrl]+z

  [email protected]:/tmp>fg%1

  tar-czvftemp2.tar.gztempSYBO2SZ.dbf

  [email protected]:/tmp>jobs

  [2]-Stoppedfind/u02-typef-size+100000k

  [3]+Stoppedfind/-typef-size+100000k

  d、運行后臺中暫停的作業(bg命令)

  #前面有2個job處于stopped狀態,現在我們讓其在后臺運行,直接輸入bg命令則缺省的job繼續運行,否則輸入job編號,運行指定的job

  [email protected]:/tmp>bg2#輸入bg2之后,可以看到原來的命令后被追加了&

  [2]-find/u02-typef-size+100000k&

  [email protected]:/tmp>jobs

  [2]-Runningfind/u02-typef-size+100000k&

  [3]+Stoppedfind/-typef-size+100000k

  e、移除指定的作業n(kill)

  [email protected]:/tmp>jobs

  [3]+Stoppedfind/-typef-size+100000k

  [email protected]:/tmp>kill-9%3#強制終止job3,注意,此處的%不可省略

  [email protected]:/tmp>jobs

  [3]+Killedfind/-typef-size+100000k

  [email protected]:/tmp>jobs

  #kill-9表明強制終止指定的Job,-15則表明是正常終止指定的job。kill-l則列出kill能夠使用的所有信號

  #對于上述命令的詳細幫助,使用mancommand來獲取幫助信息

  f、帶參shell腳本的后臺處理

  #下面是一個測試用的shell腳本

  [email protected]:~/dba_scripts/custom/bin>moreecho_time.sh

  #!/bin/bash

  以上就是關于“Linux前后臺作業是什么?Linux前后臺作業有哪些常用命令”的內容,希望對大家有用。更多資訊請關注學步園。學步園,您學習IT技術的優質平臺!

抱歉!評論已關閉.

奔驰宝马破解版下载 下期平特肖规律公式 运输龙头股票代码 上海天天彩选4开奖结果 3d最简单有效定胆方法 炒股配资平台哪个好 海南体彩4十1奖金近期 福建31选7走势图体彩浙江风采网 一定牛辽宁12选5走势图 上海快三奖金 江西11选5走势 外汇理财是传销吗 平特肖最长多少期开出 11选五5一定牛北京 极速快3和值规律 网易在线理财平台 赛马会料