概述
ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器
可以搭配kill指令随时中断、删除不必要的程序
语法和参数
ps [options] [--help]
常用参数
- -A 列出所有的进程
- -w 显示加宽可以显示较多的资讯
- -au 显示较详细的资讯
- -aux 显示所有包含其他使用者的进程
- -f 显示UID、PID、PPIP、C、STIME、STIME、TTY 、TIME、 CMD栏位
- -a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
- a:显示现行终端机下的所有程序,包括其他用户的程序。
- -e:此选项的效果和指定"A"选项相同。
- e:列出程序时,显示每个程序所使用的环境变量。
au(x) 输出格式(栏目说明)
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
栏目说明
USER
: 行程拥有者,用户名
UID
程序被该 UID 所拥有PID:
进程ID(Process ID)
PPID·
则是其上级父程序的ID
%CPU
: 占用的 CPU 使用率,进程的cpu占用率
%MEM
: 占用的记忆体使用率,进程的内存占用率
VSZ
: 占用的虚拟记忆体大小,进程所使用的虚存的大小(Virtual Size)
RSS
: 占用的记忆体大小,进程使用的驻留集大小或者是实际内存的大小,Kbytes字节
TTY
: 终端的次要装置号码 (minor device number of tty),与进程关联的终端(tty)
STAT
: 该行程的状态:- D: 无法中断的休眠状态 (通常 IO 的进程)
- R: 正在执行中
- S: 静止状态
- T: 暂停执行
- Z: 不存在但暂时无法消除
- W: 没有足够的记忆体分页可分配
- <: 高优先序的行程
- N: 低优先序的行程
- L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START
: 行程开始时间,进程启动时间和日期
TIME
: 执行的时间COMMAND
:所执行的指令
使用举例
root:# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
smmsp 3521 0.0 0.7 6556 1616 ? Ss 20:40 0:00 sendmail: Queue runner@01:00:00 f
root 3532 0.0 0.2 2428 452 ? Ss 20:40 0:00 gpm -m /dev/input/mice -t imps2
htt 3563 0.0 0.0 2956 196 ? Ss 20:41 0:00 /usr/sbin/htt -retryonerror 0
htt 3564 0.0 1.7 29460 3704 ? Sl 20:41 0:00 htt_server -nodaemon
root 3574 0.0 0.4 5236 992 ? Ss 20:41 0:00 crond
xfs 3617 0.0 1.3 13572 2804 ? Ss 20:41 0:00 xfs -droppriv -daemon
root 3627 0.0 0.2 3448 552 ? SNs 20:41 0:00 anacron -s
root 3636 0.0 0.1 2304 420 ? Ss 20:41 0:00 /usr/sbin/atd
dbus 3655 0.0 0.5 13840 1084 ? Ssl 20:41 0:00 dbus-daemon-1 --system
把所有进程显示出来,并输出到指定文件
把所有进程显示出来,并输出到ps001.txt文件
ps -aux > ps001.txt
查看指定的进程
ps -ef # 显示所有进程信息,连同命令行
ps -ef | grep ssh # ps 与grep 常用组合用法,查找特定进程
UID、PID、PPIP、C、STIME、STIME、TTY 、TIME、 CMD
# ps -ef | grep php
root 794 1 0 2020 ? 00:00:52 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
www-data 951 794 0 2020 ? 00:24:15 php-fpm: pool www
www-data 953 794 0 2020 ? 00:24:14 php-fpm: pool www
www-data 954 794 0 2020 ? 00:24:29 php-fpm: pool www
...
显示指定用户信息
ps -u root //显示root进程用户信息
杀进程
kill 命令 发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程
kill命令可以带信号号码选项,也可以不带。如果没有信号号码,kill命令就会发出终止信号(15),这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源
# 杀死进程:kill pid
kill 12345
# 强制杀死进程 kill -KILL pid
kill -KILL 123456
# 彻底杀死进程:kill -9 pid
kill -9 123456
linux 的 kill 命令是向进程发送信号,kill 不是杀死的意思,-9 表示无条件退出,但由进程自行决定是否退出,这就是为什么 kill -9 终止不了系统进程和守护进程的原因。