Go to main content

手册页部分 1:用户命令

退出打印视图

更新时间: 2022年7月27日 星期三
 
 

pgrep(1)

名称

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

与其属性为以下项的进程相匹配:

  • (真实组 ID 为 other OR daemonAND
  • (真实用户 ID 为 root OR daemon

Pkillpgrep 功能几乎相同,除了由 kill(1) 向每个匹配进程发送信号,而不是打印其进程 ID。信号名称或数字可以指定为 pkill 的第一个命令行选项。

选项

支持以下选项:

–c ctidlist

仅与其合同 ID 位于列表中的进程相匹配。

–d delim

指定要在每个匹配进程 ID 之间打印的输出分隔符字符串。如果没有指定 –d 选项,缺省值为换行符。–d 选项仅当指定为 pgrep 的选项时才有效。

–f

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.

–g pgrplist

仅与其组 ID 位于给定列表中的进程相匹配。如果组 0 包括在列表中,则解释为 pgreppkill 进程的组 ID。

–G gidlist

仅与其真实组 ID 位于给定列表中的进程相匹配。每个组 ID 可以指定为组名或数字组 ID。

–J projidlist

仅与其项目 ID 位于给定列表中的进程相匹配。每个项目 ID 可以指定为项目名或数字项目 ID。

–l

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.

–n

仅与符合所有其他指定匹配标准的最新(最新创建的)进程相匹配。不能和选项 –o 同时使用。

–o

仅与符合所有其他指定匹配标准的最旧(最早创建的)进程相匹配。不能和选项 –n 同时使用。

–P ppidlist

仅与其父进程 ID 位于给定列表中的进程相匹配。

–s sidlist

仅与其进程会话 ID 位于给定列表中的进程相匹配。如果 ID 0 包括在列表中,则解释为 pgreppkill 进程的会话 ID。

–t termlist

仅匹配与给定列表中的终端相关联的进程。每个终端将指定为 /dev 中终端设备路径名 "dev/" 的后缀。例如,term/apts/0

–T taskidlist

仅与其任务 ID 位于给定列表中的进程相匹配。如果 ID 0 包括在列表中,则解释为 pgrep pkill 进程的任务 ID。

–u euidlist

仅与其有效用户 ID 位于给定列表中的进程相匹配。每个用户 ID 可以指定为登录名或数字用户 ID。

–U uidlist

仅与其真实用户 ID 位于给定列表中的进程相匹配。每个用户 ID 可以指定为登录名或数字用户 ID。

–v

逆向读取匹配。匹配所有进程,除了符合指定匹配标准的进程。

–x

仅将其参数字符串或可执行文件名与指定模式完全匹配的进程视为匹配进程。当进程参数字符串或可执行文件名中的所有字符都与模式匹配时,才将该模式匹配视为完全匹配。

–z zoneidlist

仅与其区域 ID 位于给定列表中的进程相匹配。每个区域 ID 可以指定为区域名或数字区域 ID。此选项仅在全局区域中执行时有效。如果 pkill 功能用于向其他区域中的进程发送信号,该进程必须已声明 {PRIV_PROC_ZONE} 特权(请参见 privileges(7))。

signal

指定发送到每个匹配进程的信号。如果未指定信号,将缺省发送 SIGTERMsignal 的值可以是 signal.h(3HEAD) 中定义的一个符号名称,没有 SIG 前缀,或者是对应信号数字的十进制值。signal 选项仅当指定为 pkill 的第一个选项时才有效。

操作数

支持下列操作数:

pattern

指定扩展常规表达 (Extended Regular Expression, ERE) 模式,以匹配可执行文件名或完整进程参数字符串。有关 ERE 语法的完整说明,请参见regex(7)

示例

示例 1 获取进程 ID

获取 sendmail 的进程 ID:

example% pgrep -x -u root sendmail
283
示例 2 终止进程

终止最新创建的 xterm

example% pkill -n xterm

退出状态

将返回以下退出值:

0

一个或多个进程匹配。

1

无进程匹配。

2

指定的命令行选项无效。

3

发生了致命错误。

文件

/proc/nnnnn/psinfo

进程信息文件

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
system/core-os

另请参见

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:

pr_fname

Name of the executed file

pr_psargs

Initial characters of argument list

如果 pattern 参数包含 ERE 元字符(同时也是 shell 元字符),可能需要使用适当的 shell 引号将此模式括起来。

从不使用 pgreppkill 匹配死进程。

当前 pgreppkill 进程绝不会将自身视为可能匹配。