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

分享一个php处理信号的小例子,第1张

概述分享一个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 sigintjust for sigquit^Cjust for sigint^Cjust for sigint^Z[1]+  Stopped                 php sigint.phproot@lyh:/home/tbtest# bg[1]+ php sigint.php &root@lyh:/home/tbtest# fgphp sigint.phproot@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.phproot     16390  0.0  0.0  11744   932 pts/0    S+   15:09   0:00 grep --color=auto phproot@lyh:~# kill -s sigquit 16385

ps:pcntl_signal_dispatch 比ticks效率会更高

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

以上是内存溢出为你收集整理的分享一个php处理信号的小例子全部内容,希望文章能够帮你解决分享一个php处理信号的小例子所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1007843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存