ps
用于报告当前系统的进程状态。可以搭配 kill 指令随时中断、删除不必要的程序。ps
命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定哪些进程正在运行、运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
1、常用选项
ps --help a
查看帮助
-a
显示当前终端所有正在运行的程序
a
显示全部终端所有正在运行的程序
u, -u
以用户为主,显示全部终端所有的属于当前用户的正在运行的程序
x
显示全部正在运行的程序
j
采用工作控制的格式显示程序状况
-f
显示 UID、PPIP、C 与 STIME 栏位
2、常用组合选项
aux
以用户为主,显示全部终端所有的属于全部用户的正在运行的程序:
zds@ubuntu:~$ ps aux | head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.1 119884 3040 ? Ss 11:51 0:03 /sbin/init ...
root 2 0.0 0.0 0 0 ? S 11:51 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? I< 11:51 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? I< 11:51 0:00 [mm_percpu_wq]
root 7 0.0 0.0 0 0 ? S 11:51 0:01 [ksoftirqd/0]
root 8 0.1 0.0 0 0 ? I 11:51 0:05 [rcu_sched]
root 9 0.0 0.0 0 0 ? I 11:51 0:00 [rcu_bh]
root 10 0.0 0.0 0 0 ? S 11:51 0:00 [migration/0]
root 11 0.0 0.0 0 0 ? S 11:51 0:00 [watchdog/0]
axjf
以工作控制的格式,显示全部终端所有的属于全部用户的正在运行的程序:
zds@ubuntu:~$ ps axjf | head
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
0 2 0 0 ? -1 S 0 0:00 [kthreadd]
2 4 0 0 ? -1 I< 0 0:00 \_ [kworker/0:0H]
2 6 0 0 ? -1 I< 0 0:00 \_ [mm_percpu_wq]
2 7 0 0 ? -1 S 0 0:01 \_ [ksoftirqd/0]
2 8 0 0 ? -1 I 0 0:05 \_ [rcu_sched]
2 9 0 0 ? -1 I 0 0:00 \_ [rcu_bh]
2 10 0 0 ? -1 S 0 0:00 \_ [migration/0]
2 11 0 0 ? -1 S 0 0:00 \_ [watchdog/0]
2 12 0 0 ? -1 S 0 0:00 \_ [cpuhp/0]
-l
不知道是啥意思,据说是详细列出 PID 信息:
zds@ubuntu:~$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 4341 3730 0 80 0 - 7446 wait pts/18 00:00:00 bash
4 R 1000 19145 4341 0 80 0 - 8998 - pts/18 00:00:00 ps
3、栏位说明:
栏位名称 | 说明 |
---|---|
F | 进程的标志(process flags),当 flags 值为 1 则表示此子程序只是 fork 但没有执行 exec,为 4 表示此程序使用超级管理员 root 权限 |
USER | 进程的拥有用户 |
PID | 进程 ID |
PPID | 父进程 PID |
SID | session ID |
TPGID | 前台进程组的 ID |
%CPU | 进程占用的 CPU 百分比 |
%MEM | 占用内存的百分比 |
NI | 进程的 NICE 值 |
VSZ | 进程使用虚拟内存大小 |
RSS | 驻留内存中页的大小 |
TTY | 终端 ID |
S or STAT | 进程状态 |
WCHAN | 正在等待的进程资源 |
START | 启动进程的时间 |
TIME | 进程消耗 CPU 的时间 |
COMMAND | 命令的名称和参数 |
4、关于栏位 STAT 的值的解释
STAT 表示进程的状态,各种状态值的解释如下表:
状态 | 解释 |
---|---|
R | Running 运行中 |
S | Interruptible Sleep 等待调用 |
D | Uninterruptible Sleep 不可中断睡眠 |
T | Stoped 暂停或者跟踪状态 |
X | Dead 即将被撤销 |
Z | Zombie 僵尸进程 |
W | Paging 内存交换 |
N | 优先级低的进程 |
< | 优先级高的进程 |
s | 进程的领导者 |
L | 锁定状态 |
l | 多线程状态 |
+ | 前台进程 |
网友评论