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: 进程的领导者(在它之下有子进程)+: 位于后台的进程组