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环境

阅读 2k
1 个回答

你的程序只监听了一个信号,而最新版本不会将信号监听作为 EventLoop Block 的条件了,因此进程会立即退出。你可以添加一个 STDIN 可读事件监听。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏