首页 > 代码库 > PHP进程信号处理
PHP进程信号处理
PHP的pcntl扩展提供了信号处理的功能,利用它可以让PHP来接管信号的处理,在开发服务器端守护进程方面,信号处理至关重要。pcntl这个扩展仅在cli/cgi模式下可用。mod_php和php-fpm中不可以使用。PHP在编译的过程中,并没有把pcntl连接到php-cli可执行文件中。
函数原型:
bool pcntl_signal(int $signo ,callback $handler [,bool $restart_syscalls=true])
第一个参数是信号ID,具体可以参见这里http://swoole.sinaapp.com/archives/124
第二个参数是信号发生时回调的PHP函数。
第三个参数是是否restart,是否重新注册此信号。这个参数如果为false,那此信号只注册处理一次。
<?php//信号处理需要注册ticks才能生效,这里务必注意//PHP5.4以上版本就不再依赖ticks了declare(ticks = 1);function sig_handler($signo){switch ($signo) {case SIGUSR1:echo "SIGUSR1\n";break;case SIGUSR2:echo "SIGUSR2\n";break;default:echo "unknow";break;}}pcntl_signal(SIGUSR1, "sig_handler");pcntl_signal(SIGUSR2, "sig_handler");posix_kill(posix_getpid(), SIGUSR1);posix_kill(posix_getpid(), SIGUSR2);?>
PHP进程信号处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。