我正在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杀死脚本,杀死-1,杀死-2或杀死-15时,我总是会因此而出现分段错误。 更令人沮丧的是,我在不同的机器上执行相同的脚本,结果是我首先想要的结果。任何想法为什么这个分段错误会不断发生以及如何解决它?