2011-12-22 2 views
1

gdb 등을 통한 Linux 디버깅의 세계에서 상대적으로 초보자로서 저는 우리가보고있는 문제에 대한 도움을 찾고 있습니다.막힌 PHP 프로세스를 디버그 하시겠습니까?

호스팅 된/관리되는 "VPS"(가상 사설 서버 - 우리는 대부분 구성이지만 전체적으로는 제어 할 수 없음)에서 가끔 PHP 프로세스가 "영원히"스틱된다는 것을 알 수 있습니다. 대부분의 웹 히트 곡은 정상적으로 재생되지만 정상적으로 재생되지는 않습니다. 그러나 이러한 음악을 식별하고 죽이지 않으면 수십 분 동안 지속됩니다.

gdb를 프로세스에 연결하고 스택 추적을 얻으려고합니다. 그러나 어떻게해야할지 모르겠습니다. 디버깅을 활성화 한 상태에서 PHP를 실행해야하는지 잘 모르겠습니다.

장기 실행 PHP 프로세스를 식별하는 더 쉬운 방법이 있습니까? 무한한 폴링 루프에 갇히는 것처럼 간단한 것이면 우리를 도울 수 있습니다.

+0

gdb에서 stacktrace를 얻으려면'backtrace'를 시도하십시오. – hakre

답변

2

PHP에는 스크립트가 특정 시간 제한을 초과하여 실행되는 것을 방지하는 자동 종료 기능이있어서 max_execution_time .ini 설정과 set_time_limit() 기능을 조사합니다.

당신은 여전히 ​​스크립트가 죽지 않는 원인을 알아 내야하지만, 수동으로 죽이지 않아도됩니다.

관련 문제