pgrep, pkill - 通过名称及其他属性查找进程或发送进程信号
pgrep [-flvx] [-n | -o] [-d delim] [-P ppidlist] [-g pgrplist] [-s sidlist] [-u euidlist] [-U uidlist] [-G gidlist] [-J projidlist] [-t termlist] [-T taskidlist] [-c ctidlist] [-z zoneidlist] [pattern]
pkill [-signal] [-fvx] [-n | -o] [-P ppidlist] [-g pgrplist] [-s sidlist] [-u euidlist] [-U uidlist] [-G gidlist] [-J projidlist] [-t termlist] [-T taskidlist] [-c ctidlist] [-z zoneidlist] [pattern]
Pgrep 实用程序检查系统上的活动进程,并报告属性与命令行中指定标准相匹配的进程 ID。每个进程 ID 打印为一个十进制值,并通过分隔符与下个 ID 分隔,其缺省为换行符。对于每个属性选项,用户可以在命令行上指定一组可能值,由逗号分隔。例如,
pgrep -G other,daemon
与其真实组 ID 为 other OR daemon 的进程相匹配。如果指定多个标准选项,pgrep 与其属性符合标准选项的逻辑 AND 的进程相匹配。例如,
pgrep -G other,daemon -U root,daemon
与其属性为以下项的进程相匹配:
Pkill 与 pgrep 功能几乎相同,除了由 kill(1) 向每个匹配进程发送信号,而不是打印其进程 ID。信号名称或数字可以指定为 pkill 的第一个命令行选项。
支持以下选项:
仅与其合同 ID 位于列表中的进程相匹配。
指定要在每个匹配进程 ID 之间打印的输出分隔符字符串。如果没有指定 –d 选项,缺省值为换行符。–d 选项仅当指定为 pgrep 的选项时才有效。
The regular expression pattern should be matched against the full process argument string, as reported by ps(1) with the –f option.If no –f option is specified, the expression is matched only against the name of the executable file, as reported by ps(1) without the –f option.
仅与其组 ID 位于给定列表中的进程相匹配。如果组 0 包括在列表中,则解释为 pgrep 或 pkill 进程的组 ID。
仅与其真实组 ID 位于给定列表中的进程相匹配。每个组 ID 可以指定为组名或数字组 ID。
仅与其项目 ID 位于给定列表中的进程相匹配。每个项目 ID 可以指定为项目名或数字项目 ID。
Long output format.打印每个匹配进程的名称和进程 ID。The process name is defined by the action of the –f option above.The –l option is only valid when specified as an option to the pgrep command.
仅与符合所有其他指定匹配标准的最新(最新创建的)进程相匹配。不能和选项 –o 同时使用。
仅与符合所有其他指定匹配标准的最旧(最早创建的)进程相匹配。不能和选项 –n 同时使用。
仅与其父进程 ID 位于给定列表中的进程相匹配。
仅与其进程会话 ID 位于给定列表中的进程相匹配。如果 ID 0 包括在列表中,则解释为 pgrep 或 pkill 进程的会话 ID。
仅匹配与给定列表中的终端相关联的进程。每个终端将指定为 /dev 中终端设备路径名 "dev/" 的后缀。例如,term/a 或 pts/0。
仅与其任务 ID 位于给定列表中的进程相匹配。如果 ID 0 包括在列表中,则解释为 pgrep 或 pkill 进程的任务 ID。
仅与其有效用户 ID 位于给定列表中的进程相匹配。每个用户 ID 可以指定为登录名或数字用户 ID。
仅与其真实用户 ID 位于给定列表中的进程相匹配。每个用户 ID 可以指定为登录名或数字用户 ID。
逆向读取匹配。匹配所有进程,除了符合指定匹配标准的进程。
仅将其参数字符串或可执行文件名与指定模式完全匹配的进程视为匹配进程。当进程参数字符串或可执行文件名中的所有字符都与模式匹配时,才将该模式匹配视为完全匹配。
仅与其区域 ID 位于给定列表中的进程相匹配。每个区域 ID 可以指定为区域名或数字区域 ID。此选项仅在全局区域中执行时有效。如果 pkill 功能用于向其他区域中的进程发送信号,该进程必须已声明 {PRIV_PROC_ZONE} 特权(请参见 privileges(7))。
指定发送到每个匹配进程的信号。如果未指定信号,将缺省发送 SIGTERM。signal 的值可以是 signal.h(3HEAD) 中定义的一个符号名称,没有 SIG 前缀,或者是对应信号数字的十进制值。–signal 选项仅当指定为 pkill 的第一个选项时才有效。
支持下列操作数:
指定扩展常规表达 (Extended Regular Expression, ERE) 模式,以匹配可执行文件名或完整进程参数字符串。有关 ERE 语法的完整说明,请参见regex(7)。
获取 sendmail 的进程 ID:
example% pgrep -x -u root sendmail 283示例 2 终止进程
终止最新创建的 xterm:
example% pkill -n xterm
将返回以下退出值:
一个或多个进程匹配。
无进程匹配。
指定的命令行选项无效。
发生了致命错误。
进程信息文件
有关下列属性的说明,请参见 attributes(7):
|
kill(1)、proc(1)、ps(1)、truss(1)、kill(2)、signal.h(3HEAD)、proc(5)、attributes(7)、privileges(7)、regex(7)、zones(7)
The pgrep and pkill utilities match the ERE pattern against fields defined within the proc(4) structure.The two elements used are as follows:
Name of the executed file
Initial characters of argument list
如果 pattern 参数包含 ERE 元字符(同时也是 shell 元字符),可能需要使用适当的 shell 引号将此模式括起来。
从不使用 pgrep 或 pkill 匹配死进程。
当前 pgrep 或 pkill 进程绝不会将自身视为可能匹配。