1、命令简介
pgrep:用于查找正在运行的进程的 Linux 命令。它根据指定的条件(通常是进程的名称或其他属性)查找匹配的进程,并返回它们的进程 ID(PID)。
2、命令语法
pgrep [-flvx] [-d delimiter] [-n|-o] [-P ppid,...] [-g pgrp,...] [-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...] [-t term,...] [pattern] pkill [-signal] [-fvx] [-n|-o] [-P ppid,...] [-g pgrp,...] [-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...] [-t term,...] [pattern]
3、命令描述
pgrep
会查找当前运行的进程,并将符合选择条件的进程的进程ID输出到标准输出。所有的条件都必须匹配。如,pgrep -u root sshd
只会列出名称为sshd且属于root的进程。另一方面,pgrep -u root,daemon
会列出属于root
或daemon
的进程。
pkill
会向每个进程发送指定的信号(默认为SIGTERM),而不是将它们列出到标准输出。
4、命令选项
选项 | 描述 |
-d | 设置用于在输出中分隔每个进程ID的字符串 (默认为换行符)。 (仅适用于pgrep)。 |
-f | 通常只匹配进程名称的模式。 启用 -f 后,将使用完整的命令行。 |
-g pgrp,... | 仅匹配列出的进程组ID中的进程。 进程组0被翻译为pgrep或pkill自己的进程组。 |
-G gid,... | 仅匹配其真实组ID在列表中的进程。 可以使用数字或符号值。 |
-l | 列出进程名称以及进程ID。 (仅适用于pgrep)。 |
-n | 仅选择匹配进程中最新(最近启动)的进程。 |
-o | 仅选择匹配进程中最旧(最近启动)的进程。 |
-P ppid,... | 仅匹配其父进程ID在列表中的进程。 |
-s sid,... | 仅匹配其进程会话ID在列表中的进程。 会话ID0被翻译为pgrep或pkill自己的会话ID。 |
-t term,... | 仅匹配其控制终端在列表中的进程。 终端名称应指定为不带“/dev/”前缀的名称。 |
-u euid,... | 仅匹配其有效用户ID在列表中的进程。 可以使用数字或符号值。 |
-U uid,... | 仅匹配其真实用户ID在列表中的进程。 可以使用数字或符号值。 |
-v | 反转匹配。 |
-x | 仅匹配名称(或如果指定了 -f,则为命令行) 与模式完全匹配的进程。 |
-signal | 定义要发送到每个匹配进程的信号。 可以使用数字或符号信号名称。 (仅适用于pkill)。 |
5、使用示例
1)查找进程名为“nginx”的进程ID:
pgrep nginx
2)查找进程名中包含“mysql”的进程ID:
pgrep mysql
3)查找指定用户运行的进程名为“nginx”的进程ID:
pgrep -u root nginx
4)查找指定用户运行的所有进程ID:
pgrep -u root
5)查找指定命令行参数的进程ID:
pgrep -f "command"
6)显示与指定进程名匹配的进程数:
pgrep -c "process"
7)杀死与指定进程名匹配的进程:
pkill "process"