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