【pkill & pgrep】Centos/Linux pkill命令详细介绍

336 阅读2分钟

简介

系统版本:Centos7.6

pkill命令用于杀死一个进程,会根据进程名称和其他属性杀死进程(默认会向进程发送SIGTERM信号,详细请看Linux信号的行为说明),与之相似的命令有killall,与kill命令相比,kill命令需要ps命令的配合查出PID,而pkill命令可以直接根据进程名进行操作,使用起来更为方便。

从man文件来看pkill与pgrep是绑定在一起的。grep会根据进程名称和其他属性查找进程,并列出匹配所有条件进程的PID。例如:

将名为sshd和属于root的进程列出(这里是都要符合)
> pgrep -u root sshd

将属于root的进程或守护进程列出(这里是符合其一即可)
> pgrep -u root,daemon

基础语法

> pkill [option] 进程名
> pgrep [option] 进程名

选项介绍

退出状态

基本用法

1、查找属于root的named守护进程的PID

> pgrep -u root named

2、使 syslog 重新读取其配置文件

> pkill -HUP syslogd

3、提供有关所有 xterm 进程的详细信息

> ps -fp $(pgrep -d, -x xterm)

4、 结束所有的 php-fpm 进程

> pkill -9 php-fpm

注意事项

1、用于匹配的进程名称限制为 /proc/pid/stat 输出中存在的 15 个字符。

以sshd的PID为33513为例

> vim /proc/33513/stat

2、使用 -f 选项与绝对路径 /proc/pid/cmdline 进行匹配。

以sshd的PID为33513为例

> ​​​​​​vim /proc/33513/cmdline

3、正在运行的 pgrep 或 pkill 进程永远不会将自身报告为匹配项。

4、选项 -n 和 -o 和 -v 不能组合使用