码迷,mamicode.com
首页 > Web开发 > 详细

PHP进程信号处理

时间:2014-09-25 19:25:27      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:http   io   os   使用   ar   strong   文件   sp   art   

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进程信号处理

标签:http   io   os   使用   ar   strong   文件   sp   art   

原文地址:http://www.cnblogs.com/zhujiasheng/p/3993114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!