一、查看父進程
ps -ef |grep <進程名>
在顯示的輸出中,第三列就是該進程的父進程PID,而後能夠再使用ps命令來查看父進程的名稱
ps -ef |grep <父進程PID>
二、查看線程
ps hH p <pid>
三、ps aux查看進程stat字段含義:
D 不可中斷 Uninterruptible sleep (usually IO)
R 正在運行,或在隊列中的進程
S 處於休眠狀態
T 中止或被追蹤
Z 殭屍進程
W 進入內存交換(從內核2.6開始無效)
X 死掉的進程
< 高優先級
N 低優先級
L 有些頁被鎖進內存
s 包含子進程
+ 位於後臺的進程組;
l 多線程,克隆線程 multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
四、ps命令個參數含義:
1)ps a 顯示現行終端機下的全部程序,包括其餘用戶的程序。
2)ps -A 顯示全部程序。
3)ps c 列出程序時,顯示每一個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
4)ps -e 此參數的效果和指定"A"參數相同。
5)ps e 列出程序時,顯示每一個程序所使用的環境變量。
6)ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關係。
7)ps -H 顯示樹狀結構,表示程序間的相互關係。
8)ps -N 顯示全部的程序,除了執行ps指令終端機下的程序以外。
9)ps s 採用程序信號的格式顯示程序情況。
10)ps S 列出程序時,包括已中斷的子程序資料。
11)ps -t <終端機編號> 指定終端機編號,並列出屬於該終端機的程序的情況。
12)ps u 以用戶爲主的格式來顯示程序情況。
13)ps x 顯示全部程序,不以終端機來區分。shell
14)ps -l 較長,較詳細的顯示該PID的信息bash
# ps -lA |more多線程
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 76 0 - 1193 109952 ? 00:00:03 init
1 S 0 2 1 0 -40 - - 0 migrat ? 00:00:03 migration/0
1 S 0 3 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/0
1 S 0 4 1 0 -40 - - 0 migrat ? 00:00:02 migration/1
1 S 0 5 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/1
1 S 0 6 1 0 -40 - - 0 migrat ? 00:00:02 migration/2
1 S 0 7 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/2spa
五、ps的相關命令操做:線程
whatis ps 查看ps命令的含義
ps a 關於當前shell運行的全部進程
ps ae 關於當前shell運行的全部進程運行環境的詳細信息
ps aef 關於當前shell運行的全部進程運行環境以及進程附屬關係(簡略顯示幾行,否則看起來太多太複雜)
ps x | head -n 2 顯示全部進程,還有狀態顯示(與ps -A的區別)
ps -a 顯示shell前臺運行命令的進程,但不包括shell自己
bash 從新打開shell
ps -a 顯示shell前臺運行命令的進程,但不包括shell自己
ps -o %cpu,%mem,user,group,comm,nice,pid,stat 指定顯示進程的某些信息
ps -o comm 指定顯示進程名稱。
隊列