Linux
pgrep 輸出是否包含提供給程序的參數?
下面的程式碼片段(來自現有腳本)用於檢查
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
可以提供腳本預期的輸出?
最新版本的
pgrep
fromprocps-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 (testing) 上,這個選項是存在的,並且安裝的包是
procps-ng 3.3.9
,但是當引入這個選項時我找不到一個版本,也許這個選項存在procps-ng
並且不存在於procps
.