前言
ps(Process Status)命令是linux中最常见的命令之一,它用来列出当前系统运行中的进程的状态信息。当然了,它只显示命令执行时的进程状态,如果想要动态列出状态信息,可以选择使用top命令。那么通过ps命令我们能够知道进程的哪些信息呢?下面进行介绍。
命令基本介绍
命令格式
ps命令基本格式为:
ps [options]
常用参数
1 | -A 显示所有进程(同-e) |
对于更多参数的介绍,可使用命令man ps查看,这里不再赘述。
字段含义
在介绍实例之前,需要先了解一下ps命令输出各字段的含义,这样我们才能更好地理解所展示的信息。常见字段的基本含义如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29USER 进程所有者的用户名
PID 进程号
START 进程激活时间
%CPU 进程自最近一次刷新以来所占用的CPU时间和总时间的百分比
%MEM 进程使用内存的百分比
VSZ 进程使用的虚拟内存大小,以K为单位
RSS 驻留空间的大小。显示当前常驻内存的程序的K字节数。
TTY 进程相关的终端
STAT 进程状态,包括下面的状态:
D 不可中断 Uninterruptible sleep (usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
< 高优先级
N 低优先级
L 有些页被锁进内存
s 包含子进程
\+ 位于后台的进程组;
l 多线程,克隆线程
TIME 进程使用的总CPU时间
COMMAND 被执行的命令行
NI 进程的优先级值,较小的数字意味着占用较少的CPU时间
PRI 进程优先级。
PPID 父进程ID
WCHAN 进程等待的内核事件名
常见用法
下面来看看一些常见用法。
显示所有进程信息
1 | ps -A |
虽然能显示所有进程,但是显示的信息却不多,基本只显示了进程id和进程名,有时候并不实用。
显示所有进程基本信息
相关参数 -e1
2
3
4
5
6
7
8
9
10
11ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:52 ? 00:00:03 /sbin/init splash
root 2 0 0 10:52 ? 00:00:00 [kthreadd]
root 4 2 0 10:52 ? 00:00:00 [kworker/0:0H]
root 6 2 0 10:52 ? 00:00:00 [mm_percpu_wq]
root 7 2 0 10:52 ? 00:00:00 [ksoftirqd/0]
root 8 2 0 10:52 ? 00:00:02 [rcu_sched]
root 9 2 0 10:52 ? 00:00:00 [rcu_bh]
root 10 2 0 10:52 ? 00:00:00 [migration/0]
(内容较多,其他部分略过。)
这个时候已经显示较多信息了。
显示指定用户的进程
相关参数-u1
2
3
4
5
6
7
8
9ps -u root
PID TTY TIME CMD
1 ? 00:00:03 systemd
2 ? 00:00:00 kthreadd
4 ? 00:00:00 kworker/0:0H
6 ? 00:00:00 mm_percpu_wq
7 ? 00:00:00 ksoftirqd/0
8 ? 00:00:03 rcu_sched
9 ? 00:00:00 rcu_bh
查看指定进程名相关信息
这个时候就需要配合grep使用了。
例如,查看”java“相关进程:1
2
3ps -ef|grep java
root 2685 2684 2 10:55 pts/0 00:01:19 java -jar ./software/finalspeed/finalspeed_client.jar
root 5423 4487 0 11:55 pts/20 00:00:00 grep --color=auto java
查看进程占用内存,cpu利用率等信息
1 | ps -aux |
从上面的信息,可以看到进程的所有者、cpu占用率、内存占用率等较为详细的信息。
显示线程相关信息
相关参数-l1
ps -elf
查看进程间的关系
相关参数-H,进程间关系以树形图的方式展示:1
ps -ejH
查看进程的指定字段信息
有时候可能比较关注某些进程信息,ps -o可以指定要显示的列
例如:
1 | ps -eo %cpu,%mem,vsz,rsz,start,stat,pid,sid,ni,uid,user,rss,time,command |
查看指定进程指定信息
只需要在最后指定—pid参数即可。
例如:
1 | ps -o %cpu,%mem,vsz,rsz,start,stat,pid,sid,ni,uid,user,rss,time,command --pid 2685 |
进程太多时分页显示
如果进程信息较多,可能一页无法完成显示,这时可以配合使用more命令
例如:1
ps -aux|more
总结
ps命令也是在linux下常用命令之一,通过它我们可以了解更多进程的相关信息。