0

我有一个以阻塞模式从管道读取的 PHP 脚本。

while($input = trim(fgets($pipe))) { do some stuff }

我希望能够在我的脚本等待来自管道的输入时每隔几秒执行一次 pcntl_signal_dispatch,而不会干扰排队的管道读取。

有什么建议么?

4

1 回答 1

0

据我所知,脚本阻塞时您无法响应信号。您必须从管道进行非阻塞读取,或者在一个进程中进行读取并在另一个进程中发送信号(在子进程中读取并通过管道传回父进程,让父进程响应信号)。如果您正在阅读孩子并通过管道传回父母,那么您实际上可能不需要这些信号。

阅读本文,它会更有意义(包含分步代码):

http://www.tuxradar.com/practicalphp/16/1/9

...和整个父页面:

http://www.tuxradar.com/practicalphp/16/0/0

于 2012-03-20T16:25:00.777 回答