开始学习
ps 命令
介绍
ps(英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
语法:
ps [选项]
参数:
ps 的参数非常多, 在此仅列出几个常用的参数:
-A
:列出所有的进程-e
:此选项的效果和指定”A”选项相同-f
:显示 UID、PPIP、C 与 STIME 栏目-w
:显示加宽可以显示较多信息-au
:显示较详细的信息-aux
:显示所有包含其他使用者的行程
ps 命令有两种展示风格:
ps -ef 命令 |
ps aux 命令 |
|
---|---|---|
展示风格 | System V 风格 | BSD 风格 |
指令名称 | 显示带全路径的进程名 | 会截断 command 列 |
示例
查看进程(System V 风格)
$ ps -ef | head
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:19 ? 00:00:03 /sbin/init splash
root 2 0 0 09:19 ? 00:00:00 [kthreadd]
root 4 2 0 09:19 ? 00:00:00 [kworker/0:0H]
root 6 2 0 09:19 ? 00:00:00 [mm_percpu_wq]
root 7 2 0 09:19 ? 00:00:00 [ksoftirqd/0]
root 8 2 0 09:19 ? 00:00:40 [rcu_sched]
root 9 2 0 09:19 ? 00:00:00 [rcu_bh]
root 10 2 0 09:19 ? 00:00:00 [migration/0]
root 11 2 0 09:19 ? 00:00:00 [watchdog/0]
列表含义:
UID
:程序被该 UID 所拥有PID
:就是这个程序的进程 IDPPID
:是其上级父进程的 IDC
:表示 CPU 使用的资源百分比STIME
:表示进程启动时间TTY
:登入者的终端机位置TIME
:使用掉的 CPU 时间CMD
:所下达的指令为何
查看进程(BSD 风格)
$ ps aux | head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 185576 6164 ? Ss 09:19 0:03 /sbin/init splash
root 2 0.0 0.0 0 0 ? S 09:19 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? I< 09:19 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? I< 09:19 0:00 [mm_percpu_wq]
root 7 0.0 0.0 0 0 ? S 09:19 0:00 [ksoftirqd/0]
root 8 0.1 0.0 0 0 ? I 09:19 0:41 [rcu_sched]
root 9 0.0 0.0 0 0 ? I 09:19 0:00 [rcu_bh]
root 10 0.0 0.0 0 0 ? S 09:19 0:00 [migration/0]
root 11 0.0 0.0 0 0 ? S 09:19 0:00 [watchdog/0]
列表含义:
USER
:进程拥有者。PID
:进程 ID。%CPU
:进程占用的 CPU 使用率。%MEM
:进程占用的内存使用率。VSZ
:进程占用的虚拟内存大小(Virtual Memory Size)。注意:VSZ 表示进程占用的全部地址空间,共享库、预分配内存、交换分区等都包含在里面,因此 VSZ 远远大于实际的占用的内存空间。RSS
:进程占用的物理内存大小(Resident Set Size)。注意:RSS 表示进程实际占用的物理内存,它包含共享库,但不包含在交换分区的空间。随着程序的运行,RSS 也会跟着增长,VSZ 将是它的上限。TTY
:终端的次要装置号码(minor device number of tty)。?
是表示这些进程是由系统启动的,不属于任何 TTY;tty1-tty6 是本机登录用户启动的程序,pts/0 之类的则表示为由网络连接进主机的程序。STAT
:进程的状态,Linux 的进程有以下 5 种状态:D
:不可中断 uninterruptible sleep(usually IO)R
:运行 runnable(on run queue)S
:中断 sleepingT
:停止 traced or stoppedZ
:僵死 a defunct (“zombie”) process- 注:其他状态还包括
W
(无驻留页),<
(高优先级进程),N
(低优先级进程),L
(内存锁页)。
START
:进程开始时间。TIME
:进程执行时间,统计该进程消耗 CPU 的时间。COMMAND
:启动进程的命令。
显示指定用户信息(例如 root 用户)
$ ps -u root
列出了由进程号为 pid 的进程创建的所有线程
$ ps -T -p <pid>
输出信息可能如下:
PID SPID TTY TIME CMD
3057403 3057403 ? 00:06:01 chrome
3057403 3057478 ? 00:00:00 chrome:disk$0
3057403 3057495 ? 00:00:01 chrome:gdrv0
3057403 3057556 ? 00:00:00 GpuWatchdog
3057403 3057557 ? 00:00:00 ThreadPoolServi
3057403 3057558 ? 00:00:13 ThreadPoolForeg
3057403 3057559 ? 00:05:35 Chrome_ChildIOT
3057403 3057562 ? 00:14:22 VizCompositorTh
3057403 3057571 ? 00:00:00 chrome:disk$0
3057403 3075540 ? 00:00:00 MemoryInfra
3057403 3103487 ? 00:00:00 ThreadPoolSingl
3057403 3103488 ? 00:00:00 ThreadPoolSingl
3057403 3822403 ? 00:00:00 ThreadPoolForeg
其中,字段 SPID
为线程 ID,CMD
为线程名称。