1. 程式人生 > 實用技巧 >Linux檢視和關閉後臺執行程式的方法

Linux檢視和關閉後臺執行程式的方法

執行.sh檔案

直接用./sh 檔案就可以執行,但是如果想後臺執行,即使關閉當前的終端也可以執行的話,需要nohup命令和&命令。

&命令

功能:加在一個命令的最後,可以把這個命令放在後臺執行

nohup命令

功能:不掛斷的執行命令
被執行的程式的輸出將不會在終端中顯示,預設會輸出到當前目錄下的nohup.out檔案中,如果當前目錄nohup.out不可寫,則輸出重定向到$home/nohup.out檔案。如果沒有檔案能被建立或追加寫入,則要執行的命令將不會執行。

nohup command &
nohup command >log.txt 2>&1 &	指定輸出例項
nohup python2 -m SimpleHTTPServer 20673 >log.txt &  指定輸出例項?學長當時這樣說的。

直接通過command獲取程序id並直接kill掉

ps aux |grep command |grep -v grep |awk '{print $1}' |xargs kill -9 

檢視當前後臺執行的命令

有兩個命令可以用,jobs和ps,區別是jobs用於檢視當前終端後臺執行的任務,換了終端就看不到了。而ps命令用於檢視瞬間程序的動態,可以看到別的終端執行的後臺程序。

jobs命令

功能:檢視當前終端後臺執行的任務
jobs -l選項可顯示當前終端所有任務的PID,jobs的狀態可以是running,stopped,Terminated。+ 號表示當前任務,- 號表示後一個任務。

ps命令

功能:檢視當前的所有程序

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

關閉當前後臺執行的命令

kill命令:結束程序

通過jobs命令檢視jobnum,然後執行 kill %jobnum

通過ps命令檢視程序號PID,然後執行 kill %PID

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

前後臺程序的切換與控制

fg命令

功能:將後臺中的命令調至前臺繼續執行

如果後臺中有多個命令,可以先用jobs檢視jobnun,然後用 fg %jobnum 將選中的命令調出。

Ctrl + z 命令

功能:將一個正在前臺執行的命令放到後臺,並且處於暫停狀態

bg命令

功能:將一個在後臺暫停的命令,變成在後臺繼續執行

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