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

Учитывая pid, найдите давно ушедший процесс

Я знаю, что определенный процесс перезапускает мой веб-сервер в определенное время (возможно, в задании cron? Этого не происходит каждый день, хотя), но я не знаю, какой процесс, только его идентификатор (глядя на журналы веб-сервера. Я проверил пару журналов для pid). Есть ли способ найти имя процесса / командный файл процесса, который отсутствовал некоторое время (несколько часов), учитывая только pid?

Включите учет процессов BSD (acct в Debian / Ubuntu, psacct в RHEL-подобных дистрибутивах, которые я использовал), а затем просто просмотрите полученные журналы (используя lastcomm) для интересующего вас процесса.

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

Поскольку вы упомянули lighttpd, есть несколько возможностей, три из которых:

  • logrotate (потому что после ротации файлов журнала lighttpd должен заново открыть дескрипторы файлов)
  • lighttpd-ангел
  • monit, god, Nagios, Zabbix или любое другое программное обеспечение для мониторинга, которое перезапускает процесс вашего веб-сервера, когда он работает слишком долго или использует слишком много памяти.