我有一个PHP脚本,可以在阻塞模式下从管道读取。
while($input = trim(fgets($pipe))) { do some stuff }
我希望能够每隔几秒执行一次pcntl_signal_dispatch,同时我的脚本正在等待来自管道的输入,而不会干扰排队的管道读取。
有什么建议吗?
答案 0 :(得分:0)
据我所知,当脚本阻塞时,您无法响应信号。你必须要么从管道进行非阻塞读取,要么在一个进程中进行读取,然后在另一个进程中发送信号(读入子进程并通过管道传回父进程,让父进程响应信号)。如果您正在阅读孩子并通过管道传回父母,那么您实际上可能不需要信号。
阅读本文,它会更有意义(包含逐步代码):
http://www.tuxradar.com/practicalphp/16/1/9
...和整个父页面: