文章目录
-
-
-
- [1. 基本用法](#1. 基本用法)
- [2. 常用参数](#2. 常用参数)
- [3. 用法举例](#3. 用法举例)
- [4. 注意事项](#4. 注意事项)
-
-
pkill 命令用于根据进程名称或其他属性(如用户、会话、终端等)向匹配的进程发送信号。相比 killall, pkill 提供更多匹配选项,适合更精确的进程管理。
1. 基本用法
- 语法:
bash
pkill [选项] <匹配条件>
-
功能:
- 通过进程名称、用户、终端等条件匹配进程并发送信号。
- 默认发送
TERM信号(终止进程)。 - 支持正则表达式匹配进程名称和多种过滤条件。
-
此命令是否系统自带:系统默认自带,无需额外安装。
2. 常用参数
-e:列出被匹配的进程。-f:匹配完整命令行,而不仅仅是进程名称。-i:匹配时忽略大小写。-n:仅匹配最新启动的进程。-o:仅匹配最早启动的进程。-u <用户>:仅匹配属于指定用户的进程。-t <终端>:仅匹配在指定终端运行的进程。-x:要求精确匹配进程名称。-l:列出信号列表及其描述(类似kill -l)。-s <信号>:发送指定信号,默认是TERM信号。-P <PID>:匹配父进程 ID 为指定值的进程。--help:显示帮助信息。
3. 用法举例
-
终止名称为
nginx的进程:bashpkill nginx -
强制终止所有
httpd进程:bashpkill -9 httpd -
匹配完整命令行并终止
java相关进程:bashpkill -f java -
忽略大小写终止
mysql进程:bashpkill -i mysql -
终止属于用户
john的python进程:bashpkill -u john python -
仅终止最新启动的
redis-server进程:bashpkill -n redis-server -
要求精确匹配进程名
my_app并终止:bashpkill -x my_app -
终止在指定终端运行的进程:
bashpkill -t pts/0
4. 注意事项
- 默认情况下,
pkill匹配当前用户权限范围内的进程,超级用户可匹配所有进程。 - 如果多个进程匹配条件,
pkill会向所有符合条件的进程发送信号,需谨慎使用。 - 对进程名称匹配时,需防止误匹配多个相似进程名称(可结合
-x或-f参数)。 - 强制终止(如
-9信号)可能会导致数据丢失或程序状态异常,应谨慎操作。 - 可结合
pgrep命令先查看目标进程,确认后再使用pkill操作。