首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP如何模拟SIGPIPE?

PHP如何模拟SIGPIPE?
EN

Stack Overflow用户
提问于 2019-05-28 09:44:07
回答 1查看 244关注 0票数 2

我的环境:Ubuntu18.04 LTS PHP 7.2.2 ZTS不调试

我有一个很大的应用程序,有时会发生Broken pipe错误。我想要处理它,但为此,我需要模拟这个错误来进行开发。我怎么能这么做?

我试过:

代码语言:javascript
复制
posix_kill(posix_getpid(), SIGPIPE);
while(1) {
    sleep(5);
}

另外:

代码语言:javascript
复制
sudo kill -13 pid

但剧本一直在工作。

预期结果:

代码语言:javascript
复制
Thread 1 "php" received signal SIGPIPE, Broken pipe.

脚本应该被阻止。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-28 10:07:38

signal_example.php:

代码语言:javascript
复制
pcntl_async_signals(true);

pcntl_signal(SIGPIPE, function (int $signo) {
    echo 'Process ' . posix_getpid() . ' "php" received signal SIGPIPE, Broken pipe.';
    exit;
});

while (1) {
    sleep(1);
}

杀害-13 990人:

代码语言:javascript
复制
artemev@Vitaly-PC:~/project/example$ php signal_example.php 
Process 990 "php" received signal SIGPIPE, Broken pipe.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56339327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档