Linux系统的进程是由线程组成的,Linux的进程可以包含一个进程,也可以包含多个进程。
1. 查看进程信息
- 使用ps命令,查看系统设置的最大进程数
sysctl kernel.pid_max
- 使用ps命令,查看进程总数
ps -ef | wc -l
- 使用ps命令,查看当前进程数
ps -eLf | wc -l
- 查看某个服务的进程数
ps -ef | grep 服务名称 | wc -l
如查看httpd的进程数
ps -ef | grep httpd | wc -l
2. 查看线程信息
- 使用top命令,top的每一行显示一个线程。
top -H
- 使用ps命令,查看所有存在的线程
ps -xH
也可以使用grep作进一步的过滤。
- 使用ps命令,查看指定的进程产生的线程数目
ps -mq PID
3.进程状态解释
使用ps命令查看进程时,进程状态分别对应的含义如下:
-
D :不可中断睡眠(通常是在IO操作) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。
-
R :正在运行或可运行(在运行队列排队中)。
-
S :可中断睡眠(休眠中、 受阻、 在等待某个条件的形成或接受到信号)。
-
T :已停止的进程,收到SIGSTOP、 SIGSTP、 SIGTIN、SIGTOU信号后停止运行。
-
W :正在换页(2.6.内核之前有效)。
-
X :死进程(未开启)。
-
Z: 僵尸进程,进程已终止,但进程描述符存在。
-
< : 高优先级(not nice to other users)进程。
-
N: 低优先级(nice to other users)进程。
-
L: 页面锁定在内存(实时和定制的IO)。
-
s: 一个信息头。
-
l : 多线程(使用 CLONE_THREAD,像NPTL的pthreads那样)。
-
+ : 在前台进程组。