加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 管道关闭后,哪个信号发送到进程

发布时间:2020-12-13 22:26:33 所属栏目:PHP教程 来源:网络整理
导读:我运行一个foreignprogram并将输出传递给outputcatcher.命令执行如下: $foreignprogram | outputcatcher 我想在outputcatcher中处理foreignprogram的退出.当foreignprogram退出时,outputcatcher也会退出.是否有任何信号表明outputcatcher接收到了我可以处理
我运行一个foreignprogram并将输出传递给outputcatcher.命令执行如下:

$foreignprogram | outputcatcher

我想在outputcatcher中处理foreignprogram的退出.当foreignprogram退出时,outputcatcher也会退出.是否有任何信号表明outputcatcher接收到了我可以处理的信号?我尝试过SIGINT,SIGTERM和SIGHUP,但到目前为止还没有运气.

如果重要的话,ouputcatcher是用PHP编写的,我用pcntl_signal()处理信号

解决方法

我认为这两个项目是两个独立的项目.

foreignprogram无法知道谁将输出作为输入.除非你的实施是狡猾的.

但是如果你知道foreignprogram pid那么,

你可以做的一件事是你可以从outputcatcher每秒检查一次外来程序是否正在运行.如果没有运行,那么你可能想退出你的输出捕获器.

尝试每秒从outputcatcher发送信号0并检查返回值.

我不知道如何在PHP中执行此操作.但我认为在bash中也会如下所示.

kill -s 0 foreignpgram_pid

这将检查foreignpgram_pid是否正在运行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读