2012-03-01 142 views
0

我有一個PHP腳本,可以在阻塞模式下從管道讀取數據。每隔幾秒PHP調用一次pcntl_signal_dispatch()

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

我希望能有而我的劇本正在等待從管道輸入,而不會干擾排隊管讀取pcntl_signal_dispatch執行每隔幾秒鐘。

有什麼建議嗎?

回答

0

據我所知,當腳本阻塞時,您無法對信號做出響應。您必須從管道執行非阻塞讀取操作,或者在一個進程中執行讀取操作,並在另一個進程中分派信號(讀取子進程並通過管道傳遞迴父進程,讓父進程響應信號)。如果你正在閱讀孩子並通過管道回到父母身上,那麼你實際上可能不需要這些信號。

看了這個,它會更有意義(包含一步一步的代碼):

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

...和整體父頁面:

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

相關問題