在實際使用shell 過程當中,一些須要耗時較長的處理過程,最好是放到後臺執行,從而使咱們可以在終端執行更其餘須要更多關注的操做。下面整理了一些關於後臺執行任務的相關命令。html
&
將&
加在一個命令的最後,能夠把這個命令放到後臺執行linux
注意:redis
1.若是關閉當前終端,將沒法維護後臺任務的執行 2.須要用戶交互的命令不要放在後臺執行
好比這裏把redis服務的啓用的腳本寫到了redis-service-startup.sh
中shell
# 後臺運行 ./redis-service-startup.sh &
nohup
使用&命令後,做業被提交到後臺運行,當前控制檯沒有被佔用,可是一但把當前控制檯關掉(退出賬戶時),做業就會中止運行。nohup命令能夠在你退出賬戶以後繼續運行相應的進程。nohup就是不掛起的意思( no hang up)。該命令的通常形式爲:nohup command &
.net
# nohup 後臺運行 nohup ./redis-service-startup.sh &
jobs
查看後臺任務jobs -l # 查詢結果 [1]+ 789 Running ./redis-service-startup.sh & (wd: ~/Documents/dev-scripts)
[1] 中表示該任務的job number 是 1。code
kill
中止後臺任務若是要中止該任務,可使用kill 命令,結合上面的jobnumberhtm
# 中止jobnumber = 1的後臺任務 kill %1
當使用nohup 後,關閉控制檯後,後臺任務仍然執行,這時候只能經過ps 命令查看咱們執行的任務的進程號, 而後再經過kill -9 進程號
殺死進程blog
ctrl + c
終止前臺命令ctrl + z
將正在執行的任務放到後臺執行fg
(fg %jobnumber
) 將任務從後臺調往前臺bg
(bg %jobnumber
) 將後臺暫停的任務變成執行任務