下面的代码片段(来自现有脚本)用于检查xvfb
进程以及它们是否正在监听特定端口:
my_list=`pgrep -u $CurrentUserID -fl Xvfb | grep :${XVFBPORT}`
process_list=`pgrep -fl Xvfb | grep :${XVFBPORT}`
Xvfb 进程以以下格式启动:
Xvfb :619 -fp /usr/share/fonts/X11/misc # i.e. in this case XVFBPORT is 619
显然这在 Ubuntu 上并不能按预期工作,因为 的输出pgrep -fl Xvfb
会给出类似以下内容:
4812 Xvfb
,末尾没有“:619”。显然,通过一些额外的管道ps
可以轻松修复。
是否有其他发行版或配置pgrep
可以提供脚本预期的输出?
答案1
pgrep
from的最新版本procps-ng
有这个-a
选项。
-a, --list-full
List the full command line as well as the process ID.
所以pgrep -afl Xvfb | grep 619
应该打印:
4812 Xvfb :619 -fp /usr/share/fonts/X11/mis
在我的 Debian Jessie(测试)上,存在此选项,并且安装的软件包是procps-ng 3.3.9
,但我找不到引入此选项时的版本,也许该选项存在于 中procps-ng
,但不存在于 中procps
。