複数の Python プログラムが実行されている場合、Python プログラムの PID をどのように判別すればよいですか?

複数の Python プログラムが実行されている場合、Python プログラムの PID をどのように判別すればよいですか?

x私のシステムでは、 programと programという 2 つの Python プログラムが実行されていますy

プログラム の pid を取得したいのですyが、xbash スクリプト用ではありません。 を使用するとpgrep python、両方の pid が取得され、どちらがどちらかわかりません。

bash スクリプトでこれら 2 つを区別する方法はありますか?

答え1

-fスイッチを使用して引数リストと照合することができますpgrep(man pgrep続きを読む)。

pgrep -f x

プログラムのみを生成する必要がありx

pgrep -f y

それぞれプログラムのみですy

代わりに、xとがy十分に一意ではなく、行が多すぎる場合は、psとを使用しgrepてより多くのオプションを持つことができます。

ps ax | grep 'python x' | grep -v grep | awk '{print $1}'

この意志

  • 関連するすべてのプロセスをリストする
  • grepでその中にあるものを検索しますpython x。ここでは、次のようなパス指定子を追加する必要があるかもしれません。python ./path/to/x
  • 一致したプロセスのリストからgrepコマンド自体を削除します。
  • 最初の列(pid)のみを出力します。

関連情報