私はいくつかのPHP CLIスクリプトを実行し、Supervisorを介して監視しています。
supervisorctl
それらを監視するために使用すると、スクリプトは次のように表示されます。
cleanup RUNNING pid 1805, uptime 0:00:41
postsales RUNNING pid 1825, uptime 0:00:10
rebills RUNNING pid 1823, uptime 0:00:19
subscribers RUNNING pid 1827, uptime 0:00:10
ただし、を発行するとstop all
、supervisorctlがフリーズし、CTRL + Cで終了する必要があります。
次にを実行するsupervisorctl
と、ステータスは次のようになります。
cleanup RUNNING pid 1935, uptime 0:00:44
postsales RUNNING pid 1953, uptime 0:00:05
rebills STOPPED Jul 19 12:23 PM
subscribers RUNNING pid 1951, uptime 0:00:05
つまり、1つのプロセスのみが停止し、他のプロセスは実行を継続します。
さらにstop all
コマンドを発行すると、同じことが起こります。1つのスクリプトが終了を試み、残りがハングします。
STOPSIGNAL=KILL
PHPスクリプトがデフォルトのTERMシグナルを適切に処理していない場合に使用するために、supervisord.confファイルを変更しようとしましたが、同じことが起こります。
スクリプトでSupervisorctlを確実に使用して、スクリプトを自由に適切に開始および停止する方法はありますか?