PHPでシグナルハンドルしようと思い、コーディングしたが、思うように動作しない。
<?php
function signal_handler($signal)
{
echo "signal = $signal\n";
exit($signal);
}
pcntl_signal(SIGTERM, "signal_handler");
pcntl_signal(SIGHUP, "signal_handler");
pcntl_signal(SIGUSR1, "signal_handler");
posix_kill(posix_getpid(), SIGTERM);
echo "finished\n";
?>
何故だ!?と思ったら、ticksの定義が必要という。
<?php
declare(ticks = 1);
function signal_handler($signal)
{
echo "signal = $signal\n";
exit($signal);
}
pcntl_signal(SIGTERM, "signal_handler");
pcntl_signal(SIGHUP, "signal_handler");
pcntl_signal(SIGUSR1, "signal_handler");
posix_kill(posix_getpid(), SIGTERM);
echo "finished\n";
?>
勉強になりました・・・