個人博客首頁(點擊查看詳情)-- https://blog.51cto.com/11495268
1、簡介
系統進程 管理操作 是一項基本功,本文 主要描述 如何 後臺管理 進程服務(相關命令 暫時不會 詳解)
1.1 進程(基本概念 不詳細解釋)
進程是程序在一個數據集合上的一次執行過程
1.2 進程查看(查看命令 不詳細解釋)
ps、pstree -- 靜態獲取進程信息
top、htop -- 動態獲取進程信息
2、後臺進程 創建
2.1 &
## 將任務放到後臺 ,即使關閉xshell退出當前session依然繼續運行,但標準輸出和標準錯誤信息會丟失
# ./{可執行程序} &
2.2 nohup
## 將任務放到後臺,關閉標準輸入,前臺不再能夠接收任何輸入(標準輸入),重定向標準輸出和標準錯誤到當前目錄下的nohup.out文件,即使關閉xshell退出當前session依然繼續運行
# nohup ./{可執行程序} > {out_file}
2.3 nohup ... &
## 將任務放到後臺,但是依然可以使用標準輸入,前臺能夠接收任何輸入,重定向標準輸出和標準錯誤到當前目錄下的nohup.out文件,即使關閉xshell退出當前session依然繼續運行
# nohup ./{可執行程序} > {out_file} 2>&1 &
2.4 ctrl-z( suspend foreground process )
發送 SIGTSTP 信號給前臺進程組中的所有進程,常用於掛起一個進程,而並非結束進程,用戶可以使用使用fg/bg操作恢復執行前臺或後臺的進程;fg命令在前臺恢復執行被掛起的進程,此時可以使用ctrl-z再次掛起該進程,bg命令在後臺恢復執行被掛起的進程,而此時將無法使用ctrl-z 再次掛起該進程
3、後臺進程 管理
3.1 後臺進程 查看
## jobs 只能查詢 當前 終端 後臺任務
## 一列顯示的爲被放置後臺 job 的編號
## 第二列的 + 表示最近(剛剛、最後)被放置後臺的 job
## - 表示倒數第二(也就是在預設之前的一個)被放置後臺的工作
## 最後一列表示該進程執行的命令
# jobs
[1] Running nohup ./test.sh > wl_nohup1 2>&1 &
[2] Running nohup ./test.sh > wl_nohup2 2>&1 &
[3] Running nohup ./test.sh > wl_nohup3 2>&1 &
[4] Running nohup ./test.sh > wl_nohup4 2>&1 &
[5] Running nohup ./test.sh > wl_nohup5 2>&1 &
[6]- Running nohup ./test.sh > wl_nohup6 2>&1 &
[7]+ Stopped ./test.sh
3.2 後臺進程 終端運行
## 將後臺進程 放置 前端終端執行
## fg %{num}
## fg [%jobnumber]
# fg %7
./test.sh
... ...
^Z
[7]+ Stopped ./test.sh
4、後臺進程 運行
## 後臺 繼續 運行
## num 爲 jobs 進程對應的 序列號
## bg [%jobnumber]
# bg %{num}
5、後臺進程 關閉
## 關閉 進程
## kill -signal %{jobnumber}
## kill -9 %{num}