ps 命令 - 列出具有给定命令的所有进程,无论用户如何

ps 命令 - 列出具有给定命令的所有进程,无论用户如何

我想查看所有“php-fpm”进程的摘要,无论运行它们的用户如何。

据我了解man ps,它通常只查看当前用户在终端中启动的进程。所以ps -C php-fpm永远不会产生任何结果。然而,手册页似乎表明解除限制的唯一方法是使用类似的东西ax,但这添加所有进程在结果中,以及任何与过滤器匹配的内容

是做一个大 ps 然后使用 grep 的唯一方法吗?我确定我一定错过了什么?

我正在使用 Debian Linux 的 ps,根据手册页,它确认:

  1. 单一 Unix 规范第 2 版
  2. Open Group 技术标准基本规范,第 6 期
  3. IEEE 标准 1003.1,2004 年版
  4. X/开放系统接口扩展 [UP XSI]
  5. ISO/IEC 9945:2003

答案1

需要匹配命令名称确切地:

ps -fC php-fpm7.0

(在 Debian 9 上)。

ps -C

不将自身限制为当前用户的进程,但它不匹配命令名称的子字符串。

答案2

用于pgrep获取要传递给的 PID 列表ps

pgrep php-fpm | xargs ps xu

答案3

如果你已经pgrep安装了,那么

pgrep php-fpm

将输出所有匹配的命令的进程ID php-fpm。要同时查看该命令,请添加-l.

如果php-fpm是命令行的一部分而不是实际命令本身,请添加-fpgrep调用中。使用-lf,pgrep将显示所使用的完整命令行。

相关内容