如果直接用ps命令,会显示所有进程的状态,通常结合grep命令查看某进程的状态。如果想对进程时间监控,应该用 top 工具。下面主要介绍下ps指令。
在Linux中,进程存在5中状态
下面是常用的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的信息
(15)ps au 显示终端下用户的所有程序
$ ps -lA |more
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 13212 ep_pol ? 00:02:16 systemd
1 S 0 2 0 0 80 0 - 0 kthrea ? 00:00:00 kthreadd
1 S 0 3 2 0 80 0 - 0 smpboo ? 00:00:01 ksoftirqd/0
1 S 0 5 2 0 60 -20 - 0 worker ? 00:00:00 kworker/0:0H
1 S 0 7 2 0 -40 - - 0 smpboo ? 00:00:05 migration/0
1 S 0 8 2 0 80 0 - 0 rcu_gp ? 00:00:00 rcu_bh
1 S 0 9 2 0 80 0 - 0 rcu_no ? 00:00:00 rcuob/0
1 S 0 10 2 0 80 0 - 0 rcu_no ? 00:00:00 rcuob/1
1 R 0 11 2 0 80 0 - 0 ? ? 00:10:41 rcu_sched
1 S 0 12 2 0 80 0 - 0 rcu_no ? 00:04:07 rcuos/0
1 S 0 13 2 0 80 0 - 0 rcu_no ? 00:06:51 rcuos/1
5 S 0 14 2 0 -40 - - 0 smpboo ? 00:00:16 watchdog/0
5 S 0 15 2 0 -40 - - 0 smpboo ? 00:00:15
相关信息解释:
F :进程的标志(flag),4表示用户为超级用户
S :进程的状态(stat)
PID:进程的ID
C :CPU使用资源的百分比
PRI:priority(优先级)的缩写,
NI :Nice值,
ADDR:核心功能,指出该进程在內存的那一部分,如果是运行的进程,一般都是“-”
SZ :用掉的内存的大小
WCHAN:当前进程是否正在运行,若为“-”表示正在进行
TTY :登陆者的终端位置
TIME:用掉的CPU的时间
CMD :所执行的指令
# ps aux |more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 52848 5616 ? Ss 7月03 2:16 /usr/lib/systemd/systemd --switched-root --syst
em --deserialize 23
root 2 0.0 0.0 0 0 ? S 7月03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 7月03 0:01 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 7月03 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 7月03 0:05 [migration/0]
root 8 0.0 0.0 0 0 ? S 7月03 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 7月03 0:00 [rcuob/0]
root 10 0.0 0.0 0 0 ? S 7月03 0:00 [rcuob/1]
root 11 0.0 0.0 0 0 ? S 7月03 10:41 [rcu_sched]
root 12 0.0 0.0 0 0 ? R 7月03 4:07 [rcuos/0]
root 13 0.0 0.0 0 0 ? S 7月03 6:51 [rcuos/1]
root 14 0.0 0.0 0 0 ? S 7月03 0:16 [watchdog/0]
root 15 0.0 0.0 0 0 ? S 7月03 0:15 [watchdog/1]
root 16 0.0 0.0 0 0 ? S 7月03 0:06 [migration/1]
root 17 0.0 0.0 0 0 ? S 7月03 0:23 [ksoftirqd/1]
root 19 0.0 0.0 0 0 ? S< 7月03 0:00 [kworker/1:0H]
root 20 0.0 0.0 0 0 ? S< 7月03 0:00 [khelper]
root 21 0.0 0.0 0 0 ? S 7月03 0:00 [kdevtmpfs]
参数解释说明:
USER 进程的属主;
PID 进程的ID;
PPID 父进程;
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
NI 进程的NICE值,数值大,表示较少占用CPU时间;
VSZ 该进程使用的虚拟內存量(KB);
RSS 该进程占用的固定內存量(KB)(驻留中页的数量);
TTY 该进程在終端上运行(登陆者的終端位置),若与终端无关,则显示(?)。若为pts/0等,则表示由网络连接主机进程
WCHAN 当前进程是否正在运行,若为“-”表示正在运行;
START 该进程被触发启动时间;
TIME 该进程实际使用CPU运行的时间;
COMMAND 命令的名称和参数;
可显示当前用户的任务进程
[liudiwei@master bin]$ ps au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2333 0.0 0.0 116568 2296 tty1 Ss+ 7月03 0:00 -bash
liudiwei 5589 0.0 0.0 116876 3544 pts/0 Ss+ 8月01 0:02 -bash
liudiwei 6042 0.0 0.0 123356 1328 pts/2 R+ 22:31 0:00 ps au
liudiwei 9896 67.1 13.5 5547340 3320412 pts/0 R 10:58 464:55 python cross_validation.py
root 13757 0.0 0.0 116700 3168 pts/3 Ss+ 21:01 0:00 -bash
liudiwei 15102 29.2 6.5 5551488 1599236 pts/0 R 17:10 93:41 python submodulary.py 1
liudiwei 15578 0.0 0.0 116800 3448 pts/2 Ss 17:12 0:00 -bash
liudiwei 15777 28.9 6.4 5545876 1584784 pts/2 R 17:12 92:14 python submodulary.py 7
liudiwei 15791 28.8 6.4 5545900 1578696 pts/2 R 17:12 91:54 python submodulary.py 8
liudiwei 15860 29.0 6.4 5536464 1582700 pts/2 R 17:13 92:14 python submodulary.py 9
liudiwei 15875 28.9 6.4 5542372 1584640 pts/2 R 17:13 92:04 python submodulary.py 10
D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W 进入内存交换 (从内核2.6开始无效);
X 死掉的进程 (基本很少見);
Z 僵尸进程;
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/dream_angel_z/article/details/47214913