2012-03-01 4 views
0

차단 모드에서 파이프에서 읽는 PHP 스크립트가 있습니다.PHP는 몇 초마다 pcntl_signal_dispatch()를 호출합니다.

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

내 스크립트가 대기중인 파이프 읽기를 방해하지 않고, 파이프에서 입력을 기다리는 동안 몇 초마다 실행 pcntl_signal_dispatch 가질 수 있도록하고 싶습니다.

제안 사항?

답변

0

내가 아는 한 스크립트가 차단되면 신호에 응답 할 수 없습니다. 당신은 당신의 파이프로부터 non-blocking read를하거나, 하나의 프로세스 내에서 read를하고, 다른 프로세스에서 시그널을 보내야한다. (자식을 읽고 pipe를 통해 부모에게 패스하고, 부모가 시그널에 응답한다.) 아이를 읽고 파이프를 통해 부모에게 돌아 오는 경우 실제로 신호가 필요하지 않을 수 있습니다.

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

을 ... 그리고 전체 상위 페이지 :

(단계별 코드를 포함), 더 이해가됩니다이 읽기

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