既存のスクリプトの次のコードスニペットは、プロセスをチェックし、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
。