如何查看进程的信息(线程数)

三种方法:

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的那样)
 +   在前台进程组

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