myfreax

Linux Pgrep命令搜索进程

pgrep是一个命令行程序,可让您根据指定的条件查找正在运行的进程ID。它可以是完整或进程名称部分,运行该进程的用户或其他属性

3 min read
By myfreax
Linux Pgrep命令搜索进程

pgrep是一个命令行程序,可让您根据指定的条件查找正在运行的进程ID。它可以是完整或进程名称部分,运行该进程的用户或其他属性。

本教程介绍Linux pgrep命令的基础。pgrep命令是procpsprocps-ng的一部分,该软件已预装在几乎所有Linux发行版中。

pgrep命令的语法形式上pgrep [options] pattern。它使用扩展的正则表达式指定匹配模式<PATTERN>

pgrep ssh命令将会搜索SSH服务器进程的PID。在不带任何选项调用pgrep时,指定的模式与正在运行程序进行匹配。

如果正在运行的进程名称与ssh匹配,则其PID将显示在屏幕上。如果未找到匹配项,则输出为空。

当至少一个正在运行的进程与请求的名称匹配时,命令返回0。否则,退出代码1。这在编写shell脚本时很有用。

如果要将kill的信号发送到匹配的进程,请使用pkillpkill是kill命令是的封装,并使用相同的选项和模式匹配。

pgrep ssh -d' '命令将会使用使用空格作为分隔符,pgrep在打印每个匹配的进程ID时,默认使用换行符进行分隔。 -d选项允许您指定其他分隔符。

如果你还需要打印进程的名称,可以-l选项告诉pgrep打印进程名称及其进程ID。

pgrep使用正则表达式执行搜索操作,并将列出名称中包含ssh的所有进程。如果您只想匹配名称与搜索模式完全相同的进程,则可以使用命令pgrep '^ssh$' -l

默认情况下,pgrep仅与进程名称匹配。当使用-f选项时,pgrep也会将进程的参数作为搜索的内容。

pgrep -u root命令将会按用户搜索进程,-u选项告诉pgrep打印指定用户正在运行的进程。要指定多个用户,请用逗号分隔其名称。

您还可以组合选项和搜索模式。例如,要打印所有在mark用户下运行并且名称中包含gnome的进程及其名称,您可以运行命令pgrep -l -u mark gnome

要仅显示最远/最旧或最近/最新启动的进程,请使用-n代表最新或-o代表最旧选项。例如,要查找由mark用户启动的最新进程,你可以运行命令pgrep -lnu mark

要排除匹配项,即仅显示不符合指定条件的进程,请使用-v选项。pgrep -v -u mark命令将打印不属于mark用户的所有进程:

-c选项告诉pgrep仅打印匹配进程的计数。例如,要查找以mark用户身份运行的进程数,你可运行命令pgrep -c -u mark

结论

pgrep命令用于根据不同的标准找出正在运行的程序的PID。有关pgrep命令的更多信息,请访问pgrep手册页面或在终端中输入man pgrep。如果您有任何问题或反馈,请随时发表评论。