如何查看進程的信息(線程數)

三種方法:

1。 使用top命令,具體用法是 top -H

        加上這個選項,top的每一行就不是顯示一個進程,而是一個線程。

2。 使用ps命令,具體用法是 ps -xH

        這樣可以查看所有存在的線程,也可以使用grep作進一步的過濾。

3。 使用ps命令,具體用法是 ps -mq PID (ubuntu下貌似不能使用)

        這樣可以看到指定的進程產生的線程數目。


更進一步,其實一些系統監控工具,在本質上也是讀取的系統產生的文件罷了。比如說進程這個事情,

現在假設有進程號爲 5000 的進程,查看這個進程的所有具體信息,在哪查看呢?

看看這個目錄吧,/proc/5000/ 這裏面有你所有想要的。其實stat代表着當前的一些信息。

例如:輸入命令cat /proc/`pgrep vsftpd`/status

Name:	vsftpd
State:	S (sleeping)
Tgid:	1735
Pid:	1735
PPid:	1
TracerPid:	0
Uid:	0	0	0	0
Gid:	0	0	0	0
FDSize:	32
Groups:	
VmPeak:	    4052 kB
VmSize:	    4036 kB
VmLck:	       0 kB
VmHWM:	    1036 kB
VmRSS:	    1036 kB
VmData:	     356 kB
VmStk:	      88 kB
VmExe:	     112 kB
VmLib:	    3280 kB
VmPTE:	      32 kB
Threads:	1
SigQ:	1/5926
SigPnd:	0000000000000000
ShdPnd:	0000000000000000
SigBlk:	0000000000000000
SigIgn:	0000000000000000
SigCgt:	0000000000012001
CapInh:	0000000000000000
CapPrm:	ffffffffffffffff
CapEff:	ffffffffffffffff
CapBnd:	ffffffffffffffff
Cpus_allowed:	ff
Cpus_allowed_list:	0-7
Mems_allowed:	1
Mems_allowed_list:	0
voluntary_ctxt_switches:	1
nonvoluntary_ctxt_switches:	3

使用ps命令來查看進程的時候,進程狀態分別對應的含義如下:

D    不可中斷睡眠 (通常是在IO操作) 收到信號不喚醒和不可運行, 進程必須等待直到有中斷髮生
R   正在運行或可運行(在運行隊列排隊中)
S   可中斷睡眠 (休眠中, 受阻, 在等待某個條件的形成或接受到信號)
T   已停止的 進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行
W   正在換頁(2.6.內核之前有效)
 X   死進程 (未開啓)
 Z   殭屍進程  進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放BSD風格的
 <   高優先級(not nice to other users)
 N   低優先級(nice to other users)
 L   頁面鎖定在內存(實時和定製的IO)
 s   一個信息頭
 l   多線程(使用 CLONE_THREAD,像NPTL的pthreads的那樣)
 +   在前臺進程組

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章