Можно ли подключить отладчик к работающему процессу PHP? - PullRequest
7 голосов
/ 30 сентября 2011

У меня есть PHP-скрипт, который мы запускаем каждые несколько минут через запись cron, и время от времени (примерно раз в неделю) вместо обычного завершения он продолжает работать, съедая 100% ядра процессора (i ' м, предполагая, зацикливаясь бесконечно)

Глядя на код и «думая» о нем, я не могу найти никаких причин для этого, но это происходит. Пока что, когда я получаю 3 или более из них, я их убиваю, и это решает проблему с процессором, но я бы хотел что-то с этим сделать ...

Есть ли способ выгрузить процесс или присоединиться к нему с помощью отладчика, чтобы я мог знать что-то , что-нибудь о том, что он делает? (Только то, на какой линии PHP он находится, очень помогло бы). Я не против, если процесс умирает, когда я сбрасываю, или что-то еще.

Это PHP-скрипт, запускаемый из командной строки, на компьютере с CentOS 5.6, и я большой нуб, когда дело доходит до * nix, так что, если вы можете указать мне какое-то учебное пособие для чайников, удивительный.

Спасибо! Daniel

1 Ответ

3 голосов
/ 30 сентября 2011

Я не знаю, как подключить отладчик к процессу PHP, который специально не был подготовлен с расширением отладки PHP (например, xdebug).Однако вы можете догадаться, что происходит, используя более универсальную утилиту strace, которая может отслеживать системные вызовы, выполняемые процессом.Это только скажет вам, какие системные вызовы выполняются, но этого может быть достаточно (в зависимости от контекста), чтобы определить, что происходит в любом случае.

...