Назад | Перейти на главную страницу

Найдите процесс PHP, который записывается в файл

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

У нас есть сервер Apache, где много разработчиков работают вместе, а пользователь nmdev. Итак, как я могу узнать, какой процесс он запущен и записывается в мой файл журнала?

ps -afe | grep php53 дает мне много сегодняшних процессов, таких как:

nmdev 26518 24151 0 11:51 ? 00:00:00 /opt/xxx/yyy/apache-php5/bin/httpd -k start

Инструмент lsof с полным путем к вашему файлу даст вам список всех процессов, которые обращаются к нему.

Пример:

me@home ~ % lsof /home/me                                    
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
i3bar      1894 me  cwd    DIR    8,3    32768 4718593 /home/me
j4status   1895 me  cwd    DIR    8,3    32768 4718593 /home/me
germinal   1899 me  cwd    DIR    8,3    32768 4718593 /home/me

Решением моей проблемы было использование:

/sbin/fuser /path/to/logfile

Это дало мне возможность записывать в файл все процессы. Я убил их всех без пощады. Задача решена.