使用pcntl

时间:2016-03-10 15:48:51

标签: php segmentation-fault

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

0 个答案:

没有答案