Я выполняю из командной строки на OSX El Capitan 10.11.3, PHP 5.5.32 с модулем pcntl включил следующий скрипт PHP.
<?php
declare(ticks = 1);
function mySigHandler() {
switch ($signo) {
case SIGTERM:
// handle shutdown tasks
exit;
break;
case SIGHUP:
// handle restart tasks
break;
case SIGUSR1:
echo "Caught SIGUSR1...\n";
break;
default:
// handle all other signals
}
}
pcntl_signal(SIGINT, "mySigHandler");
pcntl_signal(SIGTERM, "mySigHandler");
pcntl_signal(SIGHUP, "mySigHandler");
for ($n = 0; ; usleep(500000)) // 0.5 seconds
echo ++$n, "\n";
?>
Здесь я пытаюсь достичь типичного сценария обработки сигналов, который будет соответствующим образом реагировать на различные сигналы. Однако, когда я пытаюсь уничтожить скрипт, используя CTRL-C, kill -1, kill -2 или kill -15, я всегда получаю ошибку сегментации.
Что еще более расстраивает, так это тот факт, что я выполнил один и тот же сценарий на другой машине, и результаты были именно такими, на которые я надеялся в первую очередь. Любые идеи, почему эта ошибка сегментации продолжает происходить и как я мог ее решить?
Задача ещё не решена.
Других решений пока нет …