gpt4 book ai didi

php - 管道关闭后向进程发送哪个信号

转载 作者:IT王子 更新时间:2023-10-29 00:44:02 24 4
gpt4 key购买 nike

我运行一个 foreignprogram 并将输出通过管道传输到 outputcatcher。命令是这样执行的:

$ foreignprogram |输出捕捉器

我想在 outputcatcher 中处理 foreignprogram 的退出。当 foreignprogram 退出时,outputcatcher 也会退出。 outputcatcher 是否收到任何信号以便我处理它?我尝试了 SIGINT、SIGTERM 和 SIGHUP,但到目前为止没有成功。

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

最佳答案

我认为这两个程序是两个独立的程序。

foreignprogram 无法知道谁在接收我的输出作为其输入。除非你实现起来很棘手。

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

您可以做的一件事是,您可以每秒从 outputcatcher 检查 foreignprogram 是否正在运行。如果没有运行,那么您可能想退出 outputcatcher

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

我不确定如何在 PHP 中执行此操作。但我认为在 bash 中会完成同样的操作。

kill -s 0 foreignpgram_pid

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

关于php - 管道关闭后向进程发送哪个信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38093658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com