pgrep出力にプロセスに提供されたパラメータが含まれていますか?

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スクリプトが期待する出力を提供する他のディストリビューションや設定はありますか?

答え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

関連情報