Linux(十五)進程管理
15.1 進程的基本介紹
(1)在linux中,每個執行的程序都稱為一個進程,每一個進程都分配一個ID號。
(2)每一個進程都會對應一個父進程,而這個父進程可以復制多個子線程。例如:www服務器
(3)每個進程都可能以兩種方式存在的。前臺與後臺,所謂前臺進程就是用戶目前的屏幕上可以進行操作的。後臺進程則是實際在操作,但由於屏幕上無法看到的進程,通常使用後臺方式執行。
(4)一般系統的服務都是以後臺進程的方式存在,而且都會常駐在系統中,直到關機才結束。
15.2 顯示系統執行的進程
15.2.1 指令 ps -aux
ps -a:顯示當前終端的所有進程信息
ps -u:以用戶的格式顯示進程信息
ps -x:顯示後臺進程運行的參數
15.2.2 進程信息說明
USE:用戶名稱
PID:進程號
%CPU:進程占用CPU的百分比
%MEM:進程占用物理內存的百分比
VSZ:進程占用的虛擬內存大小(單位:KB)
RSS:進程占用的物理內存大小(單位:KB)
TTY:終端名稱,縮寫
STAT:進程狀態,其中S-睡眠,s-表示該進程是會話的先導進程,N-表示進程擁有比普通優先級更低的優先級,R-正在運行,D-短期等待,Z-僵屍進程,T-被跟蹤或者被停止等等。
STARTED:進程的啟動時間
TIME:CPU時間,即進程使用CPU的總時間
COMMAND:啟動進程所用的命令和參數,如果過長會被截斷顯示
15.2.3 應用實例
要求:以全格式顯示當前所有的進程,查看進程的父進程。
ps -ef:是以全格式顯示當前所有的進程
-e:顯示所有進程,-f:全格式
ps -ef | grep xxx 是BSD風格
UID:用戶ID
PID:進程ID
C:CPU用於計算執行優先級的因子。數值越大,表明進程是是CPU密集型運算,執行優先級會降低;數值越小,表明進程是I/O密集型運算,執行優先級會提高。
STIME:進程啟動的時間
TTY:完整的終端名稱
TIME:CPU時間
CMD:啟動進程所用的命令和參數
15.3 終止進程kill和killall
15.3.1 介紹
若是某個進程執行到一半需要停止時,或是已經消耗了很大的系統資源時,此時可以考慮停止該進程。使用kill命令來完成此項任務。
15.3.2 基本語法
kill [選項] 進程號(通過進程號殺死進程)
killall 進程名稱(通過進程名稱殺死進程,也支持通配符,這在系統因負載過大而變得很慢是時很有用)
常用選項:-9(表示強迫進程立即停止)
15.3.3 實踐
(1)先登錄一個非root用戶
(2)在root用戶下查看當前的sshd
(3)殺掉3660
15.4 查看進程樹pstree
15.4.1 基本語法
pstree [選項],可以更加直觀的來看進程信息
15.4.2 常用選項
-p:顯示進程的PID
-u:顯示進程的所屬用戶
15.4.3 實例
Linux(十五)進程管理