文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php教程>分享一个php处理信号的小例子

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

时间:2021-12-03  来源:互联网

今天PHP爱好者为您带来我们常用的信号:kill   sigterm sigkill【kill命令】;ctrl+c sigint【键盘发出】;reload sinhub【一般从终端发出】;ctrl+z sigstop 【键盘发出】...希望对大家有所帮助。

php 处理信号简单演示

我们常用的信号

  • kill   sigterm sigkill

  • 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爱好者其它相关文章!

相关阅读更多 +
最近更新
排行榜 更多 +
元梦之星最新版手游

元梦之星最新版手游

棋牌卡牌 下载
我自为道安卓版

我自为道安卓版

角色扮演 下载
一剑斩仙

一剑斩仙

角色扮演 下载