11

私はsupervisordを使用して一連のプロセスを管理しています。これらのプロセスを実際に停止して stopsignal を設定することなく、これらのプロセスに任意のシグナルを送信するために Supervisorctl を使用することは可能ですか?

4

3 に答える 3

15

3.2.0 (2015 年 11 月リリース) までsupervisorctlは、管理するプロセスへの任意のシグナルの送信をサポートしていませんでした。

3.2.0 以降では、以下を使用しますsupervisorctl signal

signal <signal name> <name>     Signal a process
signal <signal name> <gname>:*      Signal all processes in a group
signal <signal name> <name> <name>  Signal multiple processes or groups
signal <signal name> all        Signal all processes

それで

supervisorctl signal HUP all

SIGHUPスーパーバイザーによって管理されるすべてのプロセスに送信されます。

3.2.0 までは、代わりに を使用して、管理対象プロセスのsupervisorctl statusを一覧表示できました。pid次にkill、これらの にシグナルを送信するために使用しますpid。ちょっとしたsed魔法で、これらの を抽出して、コマンドpidへの入力として受け入れられるようにすることもできます。kill

kill -HUP `bin/supervisorctl status | sed -n '/RUNNING/s/.*pid \([[:digit:]]\+\).*/\1/p'`

SIGHUPまた、制御下にあるすべてのアクティブなプロセスに送信しますsupervisord

于 2012-11-30T12:29:16.493 に答える
7

3.2.0 の時点で、任意のシグナルをプロセスに送信できるようになりました!

$ supervisord --version
3.2.0


$ supervisorctl signal help
Error: signal requires a signal name and a process name
signal <signal name> <name>     Signal a process
signal <signal name> <gname>:*      Signal all processes in a group
signal <signal name> <name> <name>  Signal multiple processes or groups
signal <signal name> all        Signal all processes


$ supervisorctl signal HUP gateway
gateway: signalled
于 2016-01-28T21:49:09.723 に答える