「pgrep(1)」-

根据名称和其他属性查找进程或向进程发出信号

命令语法格式

pgrep [options] pattern

pkill [options] pattern

命令描述

命令pgrep查看当前正在运行的进程,并将与选择条件匹配的进程ID列出到标准输出。 所有条件都必须匹配。 例如,

# pgrep -u root sshd

将仅列出root所拥有,且名为sshd的进程。 另一方面,

# pgrep -u root,daemon

将列出root或者daemon拥有的进程。

命令pkill会将指定的信号(默认为SIGTERM)发送到每个进程,而不是将它们列在标准输出上。

pattern
该操作数指定扩展正则表达式(ERE),用于匹配进程名称或命令行。

命令支持的选项及含义

控制匹配行为

-signal, –signal signal
定义要发送到每个匹配进程的信号。 可以使用数字或符号信号名称。(仅限pkill)

-f, –full
该模式通常仅与进程名称匹配。 设置-f时,使用完整的命令行。

-x, –exact
仅匹配名称与模式pattern完全匹配的进程。(或指定了-f的命令行)

-i, –ignore-case
匹配进程时忽略大小写。

-g, –pgroup pgrp,…
仅匹配在列出的进程组ID中的进程。进程组为”0“表示pgrep或pkill自己的进程组。

-G, –group gid,…
仅匹配列出实际组ID的进程。 可以使用数字或符号值。

-n, –newest
仅选择最新(最近启动)的匹配进程。

-o, –oldest
仅选择最早(最近最少启动)的匹配进程。

-P, –parent ppid,…
仅匹配列出其父进程ID的进程。

-s, –session sid,…
仅匹配在进程会话ID中列出的进程。 会话ID为0被解释成pgrep或pkill自己的会话ID。

-t, –terminal term,…
仅匹配在控制终端中列出的进程。应指定终端名称,不带“/dev/”前缀。

-u, –euid euid,…
仅匹配在有效用户ID中列出的进程。 可以使用数字或符号值。

-U, –uid uid,…
仅匹配在真实用户ID中列出的进程。 可以使用数字或符号值。

-v, –inverse
否定匹配。 此选项通常用于pgrep的上下文中。 在pkill的上下文中,禁用短选项以避免意外使用该选项。

-w, –lightweight
在pgrep的上下文中显示所有线程ID,而不是pids。 在pkill的上下文中,此选项被禁用。

-F, –pidfile file
从文件中读取PID。 这个选项对于pkill而言比pgrep更有用。

-L, –logpidfile
如果pidfile(请参阅-F)未锁定,则失败。

–ns pid
匹配属于相同名称空间的进程。 需要以root身份运行以匹配来自其他用户的进程。 有关如何限制要匹配的命名空间,请参阅–nslist。

–nslist name,…
仅匹配提供的命名空间。 可用的命名空间:ipc,mnt,net,pid,user,uts。

控制输出内容和输出形式

-d, –delimiter delimiter
设置在输出中分隔每个进程ID的字符串(默认为换行符)。(仅限pgrep)

-l, –list-name
列出进程名称以及进程ID。 (仅限pgrep)

-a, –list-full
列出完整的命令行以及进程ID。 (仅限pgrep)

-c, –count
抑制正常输出;而是打印匹配进程的计数。 当计数与任何事物都不匹配时,例如返回零,该命令将返回非零值。

其他选项

-V, –version
显示版本信息并退出。

-h, –help
显示帮助信息并退出。

注意事项

用于匹配的进程名称限制为/proc/pid/stat输出中存在的15个字符。 使用-f选项匹配完整的命令行/ proc / pid / cmdline。

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

选项-n和-o和-v不能组合使用。 如果您需要这样做,请告诉作者。

报告了停止活动的进程。

退出状态

0 一个或多个进程符合条件。 对于pkill,该过程也必须已成功发出信号。

1 没有匹配的进程,或者没有任何进程可以接收信号。

2 命令行中的语法错误。

3 致命错误:内存不足等

使用示例

示例1:查找named守护程序的进程ID:

# pgrep -u root命名

示例2:使syslog重新读取其配置文件:

# pkill -HUP syslogd

示例3:提供有关所有xterm进程的详细信息:

# ps -fp $(pgrep -d, -x xterm)

示例4:使所有chrome进程运行得更好,提高优先级:

# renice +4 $(pgrep chrome)

如上示例。

相关手册

ps(1), regex(7), signal(7), killall(1), skill(1), kill(1), kill(2)

参考文献

  • man 1 pgrep, Version pgrep from procps-ng 3.3.15

更新日志

  • 07/30/2018 创建文章