天天看點

linux系統任務的背景運作和關閉、檢視背景任務等

linux系統任務的背景運作和關閉、檢視背景任務常用指令有fg、bg、jobs、&、nohup、ctrl+z和ctrl+c等 指令

1、運作程式

如果程式是 sh檔案,直接用./sh 檔案就可以運作,但是如果想背景運作,即使關閉目前的終端也可以運作的話,需要nohup指令和&指令。

(1)&指令

          功能:加在一個指令的最後,可以把這個指令放在背景執行(關閉目前的終端後将被kill)

    例如:watch  -n 10 sh  test.sh  &  #每10s在背景執行一次test.sh腳本

(2)nohup指令

          功能:不挂斷的運作指令,其意思是如果讓程式始終在背景執行,即使關閉目前的終端也執行(之前的&做不到),這時候需要nohup。該指令可以在你退出帳戶/關閉終端之後繼續運作相應的程序。關閉中斷後,在另一個終端jobs已經無法看到背景跑得程式了,此時利用ps(程序檢視指令)

    例如:

nohup ./test &

        ps -aux | grep "test.sh"  #a:顯示所有程式 u:以使用者為主的格式來顯示 x:顯示所有程式,不以終端機來區分

2、檢視目前背景運作的指令

有兩個指令可以用,jobs和ps,差別是jobs用于檢視目前終端背景運作的任務,換了終端就看不到了。而ps指令用于檢視瞬間程序的動态,可以看到别的終端運作的背景程序。

(1)jobs指令

        功能:檢視目前終端背景運作的任務

       jobs -l選項可顯示目前終端所有任務的PID,jobs的狀态可以是running,stopped,Terminated。+ 号表示目前任務,- 号表示後一個任務。

3、前背景程序的切換與控制

     (1)fg指令

       功能:将背景中的指令調至前台繼續運作

       如果背景中有多個指令,可以先用jobs檢視jobnun,然後用 fg %jobnum 将選中的指令調出。

     (2)Ctrl + z 指令

       功能:将一個正在前台執行的指令放到背景,并且處于暫停狀态

     (3)bg指令

       功能:将一個在背景暫停的指令,變成在背景繼續執行

       如果背景中有多個指令,可以先用jobs檢視jobnum,然後用 bg %jobnum 将選中的指令調出繼續執行。

4、關閉目前背景運作的指令

      kill指令:結束程序

     (1)通過jobs指令檢視jobnum,然後執行   kill %jobnum

     (2)通過ps指令檢視程序号PID,然後執行  kill %PID

       如果是前台程序的話,直接執行 Ctrl+c 就可以終止了

繼續閱讀