スクリプトで使用するために、supervisord を使用して作成されたプロセスのプロセス ID が必要です。Supervisord によって生成されたプロセスは、デフォルト ディレクトリに .pid ファイルを作成しません。
Supervisord 子プロセスのプロセス ID を取得するにはどうすればよいですか?
スクリプトで使用するために、supervisord を使用して作成されたプロセスのプロセス ID が必要です。Supervisord によって生成されたプロセスは、デフォルト ディレクトリに .pid ファイルを作成しません。
Supervisord 子プロセスのプロセス ID を取得するにはどうすればよいですか?
スーパーバイザー バージョン 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
次のことができるようになりました。
sudo supervisorctl pid all
sudo supervisorctl pid myprogramname