脚本宝典收集整理的这篇文章主要介绍了php – pcntl_wait没有被SIGTERM打断,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
但是,当我运行以下代码并使用kill -s SIGTERM [pid]将SIGTERM发送到父进程时,仅在子进程退出后调用信号处理程序(即我必须等待睡眠完成.不应该是pcntl_wait( )被SIGTERM打断?
<?PHP declare(ticks = 1); function sig_handler($signo) { swITch ($signo) { case SIGTERM: echo 'SIGTERM' . PHP_EOL; break; default: } } pcntl_signal(SIGTERM,'sig_handler'); $pid = pcntl_fork(); if ($pid == -1) { die('Could not fork'); } else if ($pid) { echo 'parent' . PHP_EOL; pcntl_wait($status); } else { echo 'child' . PHP_EOL; sleep(30); } ?>
输出(SIGTERM仅在等待30秒后出现):
$PHP fork_test.PHP child parent SIGTERM
PHP版本=> 5.3.3
以上是脚本宝典为你收集整理的php – pcntl_wait没有被SIGTERM打断全部内容,希望文章能够帮你解决php – pcntl_wait没有被SIGTERM打断所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。