swoole 进程信号问题?

发布于 2022-09-11 22:56:46 字数 631 浏览 27 评论 0

这是我的代码 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼中杀气 2022-09-18 22:56:46

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文