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

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

简介

基础语法

选项介绍

退出状态

基本用法

注意事项

简介

系统版本:Centos7.6

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

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

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

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

基础语法

bash 复制代码
> pkill [option] 进程名
> pgrep [option] 进程名

选项介绍

选项 选项说明
-signal,--signal 定义要发送到每个匹配进程的信号,也可以使用数字或符号信号名称(仅限 pkill)
-c,--count 阻断正常输出,而是打印匹配进程的总数。 当 count 与任何内容不匹配时,例如返回零,若匹配该命令将返回非零值。
-d,--delimiter 设置用于分隔输出中每个进程 ID 的字符串(默认情况下为换行符),该选项仅限 pgrep
-f,--full 该模式通常仅与进程名称匹配,设置 -f 时,请使用绝对路径
-g,--pgroup 多个组用","做分割。仅匹配列出的进程组 ID 中的进程, 进程组 0 被转换为 pgrep 或 pkill 自己的进程组
-G,--group 多个组用","做分割。仅匹配列出其真实组 ID 的进程,可以使用数值或符号值
-l,--list-name 列出进程名称以及进程 ID,该选项仅限 pgrep
-a,--list-full 列出绝对路径以及进程 ID,该命令仅限 pgrep
-n,--newest 仅选择最新(最近启动)的匹配进程
-o,--oldest 仅选择最旧(最近一直不启动)的匹配进程
-P,--parent 多个父进程ID用","做分割。仅匹配其父进程 ID 已列出的进程
-s,--session 多个会话ID用","做分割。仅匹配其进程会话 ID 已列出的进程,会话 ID 0 被转换为 pgrep 或 pkill 自己的会话 ID
-t,--terminal 多个终端名称用","做分割。仅匹配其控制终端已列出的进程,应指定终端名称,但不应使用"/dev/"前缀
-u,--euid 多个有效用户ID用","做分割。仅匹配其有效用户 ID 已列出的进程,可以使用数值或符号值
-U,--uid 多个真实用户ID用(可登录的)","做分割。仅匹配列出真实用户 ID 的进程,可以使用数值或符号值
-v,--inverse 否定匹配。 此选项通常在 pgrep 的列表中使用。 在 pkill 的列表中,而 short 选项应被禁用以避免意外使用该选项
-w,--lightweight 在 pgrep 的列表中显示所有线程 ID 而不是 PID。 在 pkill 的列表中,此选项被禁用
-x,--exact 仅匹配名称(如果指定了 -f,则为命令行)与模式完全匹配的进程
-F,--pidfile 从文件中读取 PID,对于 pkill 来说,此选项可能比 pgrep 更有用
-L,--logpidfile 如果 -F,--pidfile 未锁定,则失败
--ns 匹配属于相同命名空间的进程。需要以 root 身份运行以匹配来自其他用户的进程
--nslist 仅匹配提供的命名空间,可用的命名空间:ipc、mnt、net、pid、user、uts
-V,--version 显示命令版本信息
-h,--help 显示帮助

退出状态

状态码 状态说明
0 一个或多个进程符合条件
1 没有匹配的进程
2 命令行中的语法错误
3 致命错误:内存不足等

基本用法

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

bash 复制代码
> pgrep -u root named

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

bash 复制代码
> pkill -HUP syslogd

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

bash 复制代码
> ps -fp $(pgrep -d, -x xterm)

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

bash 复制代码
> pkill -9 php-fpm

注意事项

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

以sshd的PID为33513为例

bash 复制代码
> vim /proc/33513/stat

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

以sshd的PID为33513为例

bash 复制代码
> ​​​​​​vim /proc/33513/cmdline

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

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

相关推荐
爱学习的章鱼哥18 分钟前
计算机网络|| 常用网络命令的作用及工作原理
linux·服务器·计算机网络
zm25 分钟前
网络编程epoll和udp
服务器·网络·数据库
野犬寒鸦28 分钟前
Linux常用命令详解(下):打包压缩、文本编辑与查找命令
linux·运维·服务器·数据库·后端·github
是垚不是土1 小时前
探秘高可用负载均衡集群:企业网络架构的稳固基石
运维·服务器·网络·云原生·容器·架构·负载均衡
skywalk81631 小时前
在一个FreeBSD的控制台,当移动鼠标时,就会有字符发生,这是怎么回事:35;62;18m35;60;
服务器·计算机外设·freebsd
胖大和尚2 小时前
Termius ssh连接服务器 vim打开的文件无法复制问题
服务器·ssh·vim
进取星辰2 小时前
24、TypeScript:预言家之书——React 19 类型系统
linux·运维·ubuntu
月上柳青2 小时前
linux-驱动开发之设备树详解(RK平台为例)
linux·驱动开发·dsp开发
阳区欠2 小时前
【Linux】线程的同步与互斥
linux·服务器·c++·线程同步·线程互斥·生产者/消费者模型
WG_172 小时前
Linux:43线程封装与互斥lesson31
linux·运维·服务器