2013-08-08 1 views
0

syslog-ng에서 PHP 스크립트로 로그 항목을 보내려고합니다. 이 질문에 상대 :syslog-ng program() destination으로 PHP 스크립트 사용하기

while (!feof(STDIN)) { 
    $input = fgets(STDIN); 
    // do something with $input 
} 

불행하게도 나는 지칠대로 지친 얻을 "POLLERR가 유휴 상태 일 때 발생했습니다 FD = '20 '"의 syslog-ng에에서 두 번째 배의 메시지 수십 : How do you know if syslog-ng stops your listening daemon? 난에 기술 된 루프를 사용하려 . 분명히 이것은 스크립트가 stdin을 닫았지만 내 스크립트가 그렇게하지 않는다는 것을 의미합니다. 어떤 아이디어?

답변

0

php.ini은 CLI 환경에 맞게 max_execution_time을 0으로 설정하십시오. 그렇지 않으면 스크립트가 죽을 것이고 PHP는 스트림을 닫습니다. 대부분의 배포판이 PHP의 각 "유형"(CLI/CGI/mod_php)마다 별도의 설정 파일을 사용하기 때문에 오른쪽으로 편집하십시오. php.ini.

+0

행운이 없습니다. php -n nameofscript를 syslog.conf에 저장하여 ini 파일을로드하지 않은 다음 모든 ini_sets 및 set_time_limit()를 스크립트에 넣습니다 (php docs는 명령 행에 최대 실행 시간 또는 시간 제한 없음) . 아직도 POLLERR이 발생했습니다. – jsd