正しいプログラムのPIDを起動する方法

正しいプログラムのPIDを起動する方法

だから、プログラムAとプログラムBと呼ばれるいくつかのPythonプログラムがあります。 「pgrep python」を使用してpidを取得すると、プログラムAとプログラムBのpidが提供されます。しかし、私はプログラムBのpidを見つける必要がありますが、プログラムAのpidは見つからないプログラムを書いています。私の計画は、プログラムが "pgrep"コンソールコマンドを実行してpidを取得することです。しかし、両方のPIDを取得し、両方のPIDの違いがわからないので(私が知っている)

それでは、プログラムAではなくプログラムBのpidを取得するにはどうすればよいですか?

ベストアンサー1

1つのオプションは、プログラムBを起動したプロセスがこれを実行した後にPIDを検索してどこかにファイルに保存できることです(たとえば、/var/run/これらのファイルは通常含まれますX.pid)。 1つの方法は、スクリプトからバックグラウンドでプログラムBを起動し、次のように$!シェル変数をチェックすることです。

ProgramB &
B_PID=$!

通常、このポリシーを使用するとX.pidファイルが古くなる可能性があります。つまり、開始されたプロセスはX.pidファイルが削除されずに終了でき、PIDは他のプロセスで再利用される可能性があります。この期間中にプログラムBが起動しないと、ファイルは更新されX.pidないため、ファイルに保存されているPIDを持つプロセスがX.pid存在し、そのプロセスに予想されるコマンド名があることを確認する必要があります。

別の戦略は、計画Bが始まったときに報告された主張を調査することです。この情報はあなたが利用可能であるpsか、pgrepあなたに提供することができます。コメント作成者が述べたように、使用されたフラグpgrepはです-f

おすすめ記事