Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Apache Error: AH00169: caught SIGTERM, shutting down Linux / DevOps

Apache Error AH00169: caught SIGTERM, shutting down — Причины остановки

Обновлено: 18.08.2026  ·  Официальная база знаний

Служба Apache внезапно прекращает работу или перезапускается без команды администратора. В системном журнале error.log регистрируется штатный сигнал завершения: [core:notice] [pid 1234] AH00169: caught SIGTERM, shutting down.

Источник сигнала SIGTERMИнициаторПричина отправки сигнала
Linux OOM KillerЯдро Linux (Kernel)Критическая нехватка RAM, ядро принудительно гасит самый тяжелый процесс
Systemd Timeout / WatchdogsystemdApache не ответил на health check или завис при graceful reload
Скрипт logrotateПланировщик CronНекорректная команда перезагрузки при ночной ротации логов
Внешний мониторингKubernetes / DockerСработал liveness probe failure, контейнер принудительно пересоздается
  • Веб-сервер перестает отвечать на запросы в определенное время суток (часто ночью при ротации логов).
  • В systemctl status apache2 служба находится в статусе inactive (dead) или activating (auto-restart).
  1. Проверьте системный журнал ядра на предмет срабатывания Out Of Memory (OOM) Killer:
    sudo dmesg -T | grep -i -E "killed process|oom_reaper|apache2|httpd"
    # Или через journalctl:
    sudo journalctl -k --grep="oom"
  2. Если процесс был убит OOM Killer, оптимизируйте параметры MPM (уменьшите MaxRequestWorkers) или добавьте Swap/RAM на сервер.
  3. Проверьте скрипт ежедневной ротации журналов в /etc/logrotate.d/apache2 (или /etc/logrotate.d/httpd). Убедитесь, что для перезагрузки используется безопасный сигнал reload (graceful), а не жесткий restart:
    # ПРАВИЛЬНАЯ КОМАНДА В LOGROTATE:
    postrotate
        /usr/lib/apache2/apache2-maintscript-helper graceful-reload > /dev/null 2>&1 || true
    endscript
  4. Проверьте статус службы в systemd и историю перезапусков:
    sudo journalctl -u apache2.service --since "1 hour ago"
  5. Если Apache работает в Docker/Kubernetes, увеличьте initialDelaySeconds и timeoutSeconds для Liveness и Readiness проб в манифесте пода.
Что такое SIGTERM: Сигнал SIGTERM (15) — это стандартный сигнал операционной системы для корректного завершения процесса. Запись AH00169 означает, что Apache выполнил штатное выключение, получив прямой приказ на остановку от внешнего процесса или ядра ОС.
Практический опыт инженера: Если Apache падает по SIGTERM во время бэкапа, проверьте скрипты создания дампов MySQL/PgSQL — вызов `mysqldump --all-databases` часто вызывает спайк по памяти, провоцируя OOM Killer.

Частые вопросы (FAQ)

В чем разница между SIGTERM и SIGKILL для Apache?

Получив SIGTERM, мастер-процесс Apache дает воркерам время дообработать текущие запросы, закрывает дескрипторы сокетов и удаляет свой PID-файл. Сигнал SIGKILL (9) уничтожает процесс мгновенно без очистки ресурсов.

Как узнать, какой именно процесс отправил сигнал SIGTERM?

Используйте подсистему аудита Linux Auditd: настройте правило sudo auditctl -a always,exit -F arch=b64 -S kill -k process_kills и анализируйте лог /var/log/audit/audit.log.

Почему Apache завершается по SIGTERM каждую ночь в 00:00 или 06:00?

В это время срабатывает системный cron-скрипт logrotate или unattended-upgrades (автообновление пакетов security).

Что такое graceful reload в Apache?

Это мягкая перезагрузка по сигналу SIGUSR1 (или graceful-stop по SIGWINCH), при которой старые воркеры дорабатывают запросы, а новые воркеры уже стартуют с обновленным конфигом без простоя сервиса.