前言
ps(Process Status)命令是Linux中最常见的命令之一,它用来列出当前系统运行中的进程的状态信息。它只显示命令执行时的进程状态,如果想要动态列出状态信息,可以选择使用top命令。
命令基本介绍
基本格式
ps [options]
常用参数
-A 显示所有进程(同-e)
-a 显示当前终端的所有进程
-u 显示进程的用户信息
-o 以用户自定义形式显示进程信息
-f 显示程序间的关系
常见字段
USER 进程所有者的用户名
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 进程等待的内核事件名
常见用法
显示所有进程信息,相关参数-A:
wangzhi@ubuntu-virtual:~$ ps -A
PID TTY TIME CMD
1 ? 00:00:03 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 kworker/0:0
4 ? 00:00:00 kworker/0:0H
6 ? 00:00:00 mm_percpu_wq
7 ? 00:00:00 ksoftirqd/0
8 ? 00:00:01 rcu_sched
9 ? 00:00:00 rcu_bh
10 ? 00:00:00 migration/0
显示所有进程基本信息,相关参数-e:
wangzhi@ubuntu-virtual:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:45 ? 00:00:03 /sbin/init splash
root 2 0 0 10:45 ? 00:00:00 [kthreadd]
root 3 2 0 10:45 ? 00:00:00 [kworker/0:0]
root 4 2 0 10:45 ? 00:00:00 [kworker/0:0H]
root 6 2 0 10:45 ? 00:00:00 [mm_percpu_wq]
root 7 2 0 10:45 ? 00:00:00 [ksoftirqd/0]
root 8 2 0 10:45 ? 00:00:01 [rcu_sched]
root 9 2 0 10:45 ? 00:00:00 [rcu_bh]
root 10 2 0 10:45 ? 00:00:00 [migration/0]
显示指定用户的进程,相关参数-u:
wangzhi@ubuntu-virtual:~$ ps -u wangzhi
PID TTY TIME CMD
1313 ? 00:00:00 systemd
1314 ? 00:00:00 (sd-pam)
1327 ? 00:00:00 gnome-keyring-d
1331 tty2 00:00:00 gdm-x-session
1333 tty2 00:00:10 Xorg
1338 ? 00:00:00 dbus-daemon
1342 tty2 00:00:00 gnome-session-b
1419 ? 00:00:00 ssh-agent
1421 ? 00:00:00 at-spi-bus-laun
1426 ? 00:00:00 dbus-daemon
查看指定进程名相关信息:
wangzhi@ubuntu-virtual:~$ ps -ef | grep java
wangzhi 2447 2417 0 11:34 pts/0 00:00:00 grep --color=auto java
查看进程占用内存、cpu等信息:
wangzhi@ubuntu-virtual:~$ ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.1 159868 9236 ? Ss 10:45 0:03 /sbin/init spl
root 2 0.0 0.0 0 0 ? S 10:45 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I 10:45 0:00 [kworker/0:0]
root 4 0.0 0.0 0 0 ? I< 10:45 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? I< 10:45 0:00 [mm_percpu_wq]
root 7 0.0 0.0 0 0 ? S 10:45 0:00 [ksoftirqd/0]
root 8 0.0 0.0 0 0 ? I 10:45 0:01 [rcu_sched]
root 9 0.0 0.0 0 0 ? I 10:45 0:00 [rcu_bh]
root 10 0.0 0.0 0 0 ? S 10:45 0:00 [migration/0]
进程太多时分页显示:
wangzhi@ubuntu-virtual:~$ ps -aux | more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 159868 9236 ? Ss 10:45 0:03 /sbin/init splash
root 2 0.0 0.0 0 0 ? S 10:45 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I 10:45 0:00 [kworker/0:0]
root 4 0.0 0.0 0 0 ? I< 10:45 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? I< 10:45 0:00 [mm_percpu_wq]
root 7 0.0 0.0 0 0 ? S 10:45 0:00 [ksoftirqd/0]
root 8 0.0 0.0 0 0 ? I 10:45 0:01 [rcu_sched]
root 9 0.0 0.0 0 0 ? I 10:45 0:00 [rcu_bh]
root 10 0.0 0.0 0 0 ? S 10:45 0:00 [migration/0]