1、查看父進程
ps -ef |grep <進程名>
在顯示的輸出中,第三列就是該進程的父進程PID,然后可以再使用ps命令來查看父進程的名稱
ps -ef |grep <父進程PID>
2、查看線程
ps hH p <pid>
3、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)
4、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 顯示所有程序,不以終端機來區分。
14)ps -l 較長,較詳細的顯示該PID的信息
# 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/2
5、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 指定顯示進程名稱。
