私は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 に答える