我想查看所有“php-fpm”进程的摘要,无论运行它们的用户如何。
据我了解man ps
,它通常只查看当前用户在终端中启动的进程。所以ps -C php-fpm
永远不会产生任何结果。然而,手册页似乎表明解除限制的唯一方法是使用类似的东西ax
,但这添加所有进程在结果中,以及任何与过滤器匹配的内容。
是做一个大 ps 然后使用 grep 的唯一方法吗?我确定我一定错过了什么?
我正在使用 Debian Linux 的 ps,根据手册页,它确认:
- 单一 Unix 规范第 2 版
- Open Group 技术标准基本规范,第 6 期
- IEEE 标准 1003.1,2004 年版
- X/开放系统接口扩展 [UP XSI]
- 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
是命令行的一部分而不是实际命令本身,请添加-f
到pgrep
调用中。使用-lf
,pgrep
将显示所使用的完整命令行。