linux 任務管理-後台執行與終止
fg、bg、jobs、&、ctrl + z命令
一、 &
加在乙個命令的最後,可以把這個命令放到後台執行 ,如gftp &,
二、ctrl + z
可以將乙個正在前台執行的命令放到後台,並且處於暫停狀態,不可執行
三、jobs
檢視當前有多少在後台執行的命令
jobs
-l選項可顯示所有任務的pid,jobs的狀態可以是running, stopped,
terminated,但是如果任務被終止了(kill),shell
從當前的shell環境已知的列表中刪除任務的程序標識;也就是說,jobs命令顯示的是當前shell環境中所起的後台正在執行或者被掛起的任務資訊;
四、fg
將後台中的命令調至前台繼續執行
如果後台中有多個命令,可以用 fg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的後台正在執行的命令的序號(不是pid)
五、bg
將乙個在後台暫停的命令,變成繼續執行 (在後台執行)
如果後台中有多個命令,可以用bg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的後台正在執行的命令的序號(不是pid)
將任務轉移到後台執行:
先ctrl + z;再bg,這樣程序就被移到後台執行,終端還能繼續接受命令。
概念:當前任務
如果後台的任務號有2個,[1],[2];如果當第乙個後台任務順利執行完畢,第二個後台任務還在執行中時,當前任務便會自動變成後台任務號碼「[2]」
的後台任務。所以可以得出一點,即當前任務是會變動的。當使用者輸入「fg」、「bg」和「stop」等命令時,如果不加任何引號,則所變動的均是當前任務
程序的終止
後台程序的終止:
方法一:
通過jobs命令檢視job號(假設為num),然後執行kill %num
方法二:
通過ps命令檢視job的程序號(pid,假設為pid),然後執行kill pid
前台程序的終止:
ctrl+c
kill的其他作用
kill除了可以終止程序,還能給程序傳送其它訊號,使用kill -l 可以察看kill支援的訊號。
sigterm是不帶引數時kill傳送的訊號,意思是要程序終止執行,但執行與否還得看程序是否支援。如果程序還沒有終止,可以使用kill -sigkill pid,這是由核心來終止程序,程序不能監聽這個訊號。
程序的掛起
後台程序的掛起:
在solaris中通過stop命令執行,通過jobs命令檢視job號(假設為num),然後執行stop %num;
在redhat中,不存在stop命令,可通過執行命令kill -stop pid,將程序掛起;
當要重新執行當前被掛起的任務時,通過bg %num 即可將掛起的job的狀態由stopped改為running,仍在後台執行;當需要改為在前台執行時,執行命令fg %num即可;
前台程序的掛起:
ctrl+z;
終止正在執行的執行緒
很多人都說使用abort方法來終止執行緒,其實這種做法並不可取!如果你的執行緒正在操作臨界資源,很有可能會造成資源沒有正確釋放而出現死鎖問題。正確的做法應該是使用標記來終止執行緒的執行。下面我們來看具體的操作步驟。首先定義乙個 停止 訊號變數 view plaincopy to clipboardp...
linux檢視正在執行的服務
linux檢視正在執行的服務 1.首先檢視 系統執行的程序 若需要檢視系統當前執行的所有程序,就需要用如下命令 ps auxw 其中引數a表示顯示系統中所有使用者的的程序 u表示輸出程序使用者所屬資訊 x表示也 顯示沒有控制台的程序 若顯示行太長而被截斷則可以使用f引數 www.2cto.com 2...
linux檢視正在執行的服務
1.首先檢視系統執行的程序 若需要檢視系統當前執行的所有程序,就需要用如下命令 ps auxw 其中引數a表示顯示系統中所有使用者的的程序 u表示輸出程序使用者所屬資訊 x表示也 顯示沒有控制台的程序 若顯示行太長而被截斷則可以使用f引數 2.檢視系統監聽的服務 netstat ln l表示顯示當前...