Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。
ps
命令列出的是当前进程的快照,即当前的进程情况。若需要动态显示进程信息,则可使用top
命令
Linux进程状态
在Linux系统上,进程有5种状态:
- 运行(正在运行或在运行队列中等待)
- 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
- 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
- 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
- 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps命令参数
详细命令参数见
ps --help a
-A
列出所有的进程-w
显示加宽可以显示较多的资讯-au
显示较详细的资讯-aux
显示所有(包含其他使用者的)进程
au(x) 输出格式 : USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- USER: 行程拥有者
- PID: pid
- %CPU: 占用的
CPU
使用率 - %MEM: 占用的内存使用率
- VSZ: 占用的虚拟内存大小
- RSS: 占用的内存大小
- TTY: 终端的次要装置号码 (minor device number of tty)
- STAT: 该行程的状态:
- D: 不可中断的静止 (通常为
I/O
动作) - R: 正在执行中
- S: 静止状态
- T: 暂停执行
- Z: 不存在但暂时无法消除
- w: 没有足够的内存分页可分配
- <: 高优先序的行程
- N: 低优先序的行程
- L: 有内存分页分配并锁在内存内 (实时系统或
I/O
)
- D: 不可中断的静止 (通常为
- START: 行程开始时间
- TIME: 执行的时间
- COMMAND: 所执行的指令
ps使用实例
aux
ps aux
,显示当前所有进程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@vultr ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.6 43408 3028 ? Ss Feb12 0:54 /usr/lib/systemd/systemd --system --deserialize 17
root 2 0.0 0.0 0 0 ? S Feb12 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Feb12 0:34 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Feb12 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S Feb12 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S Feb12 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? R Feb12 1:09 [rcu_sched]
root 10 0.0 0.0 0 0 ? S< Feb12 0:00 [lru-add-drain]
root 11 0.0 0.0 0 0 ? S Feb12 0:24 [watchdog/0]
root 13 0.0 0.0 0 0 ? S Feb12 0:00 [kdevtmpfs]
root 14 0.0 0.0 0 0 ? S< Feb12 0:00 [netns]
root 15 0.0 0.0 0 0 ? S Feb12 0:01 [khungtaskd]
root 16 0.0 0.0 0 0 ? S< Feb12 0:00 [writeback]
root 17 0.0 0.0 0 0 ? S< Feb12 0:00 [kintegrityd]
root 18 0.0 0.0 0 0 ? S< Feb12 0:00 [bioset]
root 19 0.0 0.0 0 0 ? S< Feb12 0:00 [bioset]
root 20 0.0 0.0 0 0 ? S< Feb12 0:00 [bioset]
root 21 0.0 0.0 0 0 ? S< Feb12 0:00 [kblockd]
axjf
ps -axjf
,以进程树的方式显示当前所有进程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@vultr ~]# ps -axjf
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
2 13018 0 0 ? -1 S 0 0:00 \_ [kworker/0:0]
2 13065 0 0 ? -1 S 0 0:00 \_ [kworker/0:1]
0 1 1 1 ? -1 Ss 0 0:54 /usr/lib/systemd/systemd --system --deserialize 17
1 1260 1260 1260 ? -1 Ss 0 14:08 /usr/lib/systemd/systemd-journald
1 1281 1281 1281 ? -1 Ss 0 0:00 /usr/lib/systemd/systemd-udevd
1 1486 1486 1486 ? -1 Ssl 999 0:01 /usr/lib/polkit-1/polkitd --no-debug
1 1489 1489 1489 ? -1 Ss 0 0:06 /usr/lib/systemd/systemd-logind
1 1505 1505 1505 ? -1 Ss 81 0:04 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-acti
1 1543 1535 1535 ? -1 S 998 0:07 /usr/sbin/chronyd
1 1630 1630 1630 tty1 1630 Ss+ 0 0:00 /sbin/agetty --noclear tty1 linux
1 1655 1655 1655 ? -1 Ssl 0 0:03 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
1 2731 2731 2731 ? -1 Ssl 0 9:28 /usr/sbin/rsyslogd -n
1 2732 2732 2732 ? -1 Ss 0 2:37 /usr/sbin/sshd -D
2732 13041 13041 13041 ? -1 Ss 0 0:00 \_ sshd: root@pts/1
13041 13043 13043 13043 pts/1 13068 Ss 0 0:00 \_ -bash
13043 13068 13068 13043 pts/1 13068 R+ 0 0:00 \_ ps -axjf
参考资料: