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 就可以終止了