ps
命令是基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源;
参数挺多的,记录实际一些用法;
显示所有使用者的进程
命令:ps auxf
参数介绍:
a
: 显示其他用户启动的进程u
: 启动这个进程的用户和它启动的时间,没有指定值,默认是root
; 会被a
参数覆盖x
: 显示没有控制终端的进程f
: 全部列出
显示:
内容包括:
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
用户名 | 进程ID |
cpu 占用率 |
内存占用率 | 使用虚存大小 | 实际内存的大小 | 关联的终端(tty ) |
进程的状态 | 进程启动时间和日期 | 占用总cpu 时间 |
正在执行的命令行命令 |
指定用户的进程
命令:ps -fu rpc --forest
参数介绍:
f
: 全部列出u
: 指定用户名或者用户ID,没有指定值,默认是root
; 会被a
参数覆盖--forest
: 打印过程树,过程树显示系统中的进程如何相互链接; 父类被杀死的进程由init
(或systemd
)采用
显示:
指定用户组的进程
命令:ps -fG daemon --forest
参数介绍:
f
: 全部列出G
: 指定组名或组ID--forest
: 打印过程树,过程树显示系统中的进程如何相互链接; 父类被杀死的进程由init
(或systemd
)采用
显示:
指定 PID 的进程
命令:ps -fp 1021
参数介绍:
f
: 全部列出p
: 指定进程ID,可选多个,以逗号隔开
显示:
指定 PPID 的子进程
命令:ps -f --ppid 2
参数介绍:
f
: 全部列出--ppid
: 指定进程ID的子进程
显示:
指定 TTY 的进程
命令:ps -ft tty1
参数介绍:
f
: 全部列出t
: 指定tty
的进程
显示:
指定进程的所有线程
命令:ps -fL -C httpd
参数介绍:
f
: 全部列出L
: 打印线程C
: 指定进程名
显示:
内容包括:
USER | PID | PPID | LWP | C | NLWP |
---|---|---|---|---|---|
用户名 | 进程ID |
父进程ID |
线程 | 进程名 | 线程数 |
根据CPU使用排序进程
静态命令:ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
动态命令:watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head'
参数介绍:
e
: 显示所有进程,同A
参数o
: 自定义显示字段--sort
:根据哪个字段排序
根据内存使用排序进程
静态命令:ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
动态命令:watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
参数介绍:
e
: 显示所有进程,同A
参数o
: 自定义显示字段--sort
:根据哪个字段排序
附录
进程状态
R
: 运行S
: 睡眠I
: 空闲Z
: 僵死D
: 不可中断T
: 终止P
: 等待交换页W
: 无驻留页X
: 死掉的进程<
: 高优先级进程N
: 低优先级进程L
: 内存锁页s
: 进程的领导者(在它之下有子进程)+
: 位于后台的进程组