![Почему Apache получает сигнал SIGTERM и просто останавливается?](https://rvso.com/image/717728/%D0%9F%D0%BE%D1%87%D0%B5%D0%BC%D1%83%20Apache%20%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%20SIGTERM%20%D0%B8%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%20%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%B0%D0%B2%D0%BB%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F%3F.png)
У меня есть сервер, на котором запущен nginx для статического контента, а также Apache, на котором запущен код PHP и Python.
Примерно раз в день Apache просто завершает работу, оставляя Nginx, выдающий ошибку 502 Bad Gateway. Все, что я могу найти в журналах, это то, что Apache получил SIGTERM, никаких других подробностей.
[mpm_prefork:notice] [pid 11811] AH00169: перехвачен SIGTERM, завершение работы
Он работает нормально уже некоторое время, без какого-либо обслуживания, кроме как нехватки места на диске. Я сделал некоторую настройку SSL-прокси несколько месяцев назад. Запуск Debian Jessie
решение1
Используйте auditd для регистрации всех системных вызовов kill -S kill
в файле audit.rules. СмотритеКак использовать аудит для мониторинга определенного SYSCALL?Записи журнала будут содержать pid, uid и exe каждого уничтожения, найдите тот, который был перед завершением работы httpd.
Я предполагаю, что это скрипт ротации журналов, который перезапускается неправильно.
решение2
пойман SIGTERM
Это означает, что система отправляет команду завершения Apache. Я бы начал искать задания Rogue cron, которые останавливают/перезапускают Apache, или начал бы просматривать ваши sar
журналы, чтобы увидеть, есть ли у вас какие-либо проблемы с ресурсами. Когда у вас проблемы с памятью, сервер автоматически завершает процессы, чтобы сохранить себя в живых. Apache — это обычно одна из вещей, которые будут завершаться таким образом при проблемах с памятью.