swoole 进程信号问题?
这是我的代码 test.php
<?php
swoole_process::signal(SIGALRM,function (){
echo "1\n";
});
swoole_process::alarm(100*1000);
然后执行文件,并没有输出任何信息,直接退出了、这是为什么。
root@0327ee891212:/var/www/swoole2# php test.php
root@0327ee891212:/var/www/swoole2#
改成官网的示例:
<?php
use Swoole\Process;
Process::signal(SIGALRM, function () {
static $i = 0;
echo "#{$i}\talarm\n";
$i++;
if ($i > 20) {
Process::alarm(-1);
}
});
//100ms
Process::alarm(100 * 1000);
依然不行.
本人刚学 swoole 有没有大佬解下惑.本地使用的是laradock环境
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的程序只监听了一个信号,而最新版本不会将信号监听作为 EventLoop Block 的条件了,因此进程会立即退出。你可以添加一个 STDIN 可读事件监听。