首页 技术文章 后端开发 分享一个php处理信号的小例子
正文 评论

分享一个php处理信号的小例子

我们常用的信号

  • kill sigterm sigkill【kill命令】

  • ctrl+c sigint【键盘发出】

  • reload sinhub【一般从终端发出】

  • ctrl+z sigstop 【键盘发出】

  • 定时器 sigalarm【一个进程只能有一个定时时间,多的会被新值覆盖】

sigkill和sinstop 在进行信号处理时,不能被忽略,(处理信号可以有忽略,执行默认 执行用户指定处理)

php信号小例子

<?php
        function sighandler($signo){
                echo 'just for sigint',"\\n";

        }

        function sighandler2($signo){

                echo 'just for sigquit',"\\n";
        }
        declare(ticks=1);

        pcntl_signal(SIGINT,"sighandler");

        pcntl_signal(SIGQUIT,"sighandler2");
        for($i=1;$i<30;$i++){
                file_put_contents('/home/tbtest/out.txt',"$i"."秒\\n");
                sleep(1);
        }

~

执行结果

root@lyh:/home/tbtest# php sigint.php 
^Cjust for sigint
^Cjust for sigint
^Cjust for sigint
just for sigquit
^Cjust for sigint
^Cjust for sigint
^Z
[1]+  Stopped                 php sigint.php
root@lyh:/home/tbtest# bg
[1]+ php sigint.php &
root@lyh:/home/tbtest# fg
php sigint.php
root@lyh:/home/tbtest# cat out.txt 
29秒
root@lyh:/home/tbtest#

关于捕捉sigquit

上面捕捉到了jsut for sigquit 是因为我另外起了一个终端,

root@lyh:~# ps -aux |grep php                                    
root     16385  0.5  1.9 377720 19468 pts/2    S+   15:09   0:00 php sigint.php
root     16390  0.0  0.0  11744   932 pts/0    S+   15:09   0:00 grep --color=auto php
root@lyh:~# kill -s sigquit 16385

ps:pcntl_signal_dispatch 比ticks效率会更高

推荐学习:《PHP视频教程》

以上就是分享一个php处理信号的小例子的详细内容,更多请关注主题君其它相关文章!

-=||=-收藏赞 (0)
更多主题
单栏极简文艺WordPress博客主题:Diaspora主题
¥ 0 关注:20,369
详情
简约黑白WordPress个人博客主题:Personal主题
¥ 0 关注:20,224
详情
v1.0.0
小程序收录免费WordPress主题:XCX主题
¥ 0 关注:20,010
详情
v1.0.0
一款简约单栏的免费WordPress博客主题:itheme主题
¥ 0 关注:18,243
详情
功能丰富切轻量的WordPress虚拟资源主题:Rizhuti主题
¥ 599 关注:18,194
详情
大气优雅免费WordPress博客主题:HONEY主题
¥ 0 关注:15,013
详情
回复
暂无评论

不要再留垃圾评论了,主题君整理资源不容易,留几句鼓励的话吧。