22

スクリプトで使用するために、supervisord を使用して作成されたプロセスのプロセス ID が必要です。Supervisord によって生成されたプロセスは、デフォルト ディレクトリに .pid ファイルを作成しません。

Supervisord 子プロセスのプロセス ID を取得するにはどうすればよいですか?

4

3 に答える 3

23

スーパーバイザー バージョン 3 では、次のsupervisorctl pid <name>コマンドを使用してpid管理対象プロセスを一覧表示できます。

supervisorctl pid programname

すべての管理対象プロセスのsupervisorctl pid all改行区切りリストを取得するために使用します。pid

古いバージョンの Supervisord の場合、 に固執していますがsupervisord status、少しawk,sedおよびpasteマッサージを使用すると、これらpidの を抽出して、他のコマンドへの入力として受け入れられるようにすることができます。

echo `bin/supervisorctl status | grep RUNNING | awk -F' ' '{print $4}' | sed -e 's/,$//' | paste -sd' '`

実行中のプログラムのすべての pid をスペース区切りのリストとしてリストします。たとえば、すべての信号を送信echoするkill -HUPコマンドに置き換えます。SIGHUP

于 2012-12-01T21:16:10.120 に答える
17

次のことができるようになりました。

sudo supervisorctl pid all
sudo supervisorctl pid myprogramname
于 2016-02-26T11:47:32.287 に答える