1
我正在通過Supervisord運行許多PHP進程。有時我需要關閉Supervisord。當我這樣做時,我會發送一個TERM信號給它所產生的所有PHP進程(使用supervisord.conf中的stopsignal=TERM
)。如何捕獲UNIX TERM信號,以便我可以正常地終止PHP進程?
我想攔截TERM信號並正常終止PHP進程。這可以做到嗎?
我已經添加了此代碼,以我的PHP程序,試圖做到這一點:
declare(ticks = 1);
function gracefully_terminate() {
echo "\n\ngracefully terminating\n\n";
}
pcntl_signal(SIGTERM, "gracefully_terminate");
也...便於測試,我怎麼通過CLI發送TERM信號給PHP程序?我試過使用Kill -s TERM #####
(#####是PHP進程的PID)。也許這是發送TERM信號,但它並沒有終止PHP進程。
難道你supervisord勞動者有一段時間暫停,然後停止工人'gracefully_terminate(能力)'方法?我在類似的[問題]掙扎(http://stackoverflow.com/questions/34291871/pause-supervisord-stop-event-for-a-while-using-php)。你有什麼建議嗎? – Roopendra