Отладить застрявший (не завершающийся) процесс PHP? - PullRequest
1 голос
/ 22 декабря 2011

Как относительный новичок в мире отладки Linux с помощью gdb и т. Д. Я ищу помощь по проблеме, с которой мы сталкиваемся.

На размещенном / управляемом "VPS" (виртуальный частный сервер - мы в основном, но не полностью, контролируем конфигурацию) мы наблюдаем, что случайные процессы PHP остаются "навсегда". Большинство веб-хитов приходят и уходят нормально, но эти будут длиться десятки минут, если мы сами их не опознаем и не убьем.

Я бы хотел присоединить gdb к процессам и получить трассировку стека, но я не уверен, как это сделать. Я также не уверен, нужно ли нам запускать PHP с включенной отладкой.

Есть ли более простой способ (возможно, в самом коде PHP) идентифицировать длительные процессы PHP? Может помочь нам, если это что-то простое, например, застревание в бесконечном цикле опроса.

1 Ответ

2 голосов
/ 22 декабря 2011

PHP имеет функцию автоматического уничтожения, которая предотвращает выполнение сценариев после определенного временного ограничения, посмотрите на параметр max_execution_time .ini и set_time_limit () .

Вы все равно должны выяснить, почему скрипт не умирает, но это избавит вас от необходимости убивать их вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...