Я запускаю Apache 2.2.3 на CentOS 5.5 и только что заметил следующую конфигурацию postrotate logrotate в /etc/logrotate.d/httpd:
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
Поскольку он настроен на запуск один раз в неделю, он выполняет жесткую перезагрузку Apache, которая, по-видимому, убивает все соединения (верно? Я не эксперт). Будет ли безопаснее вместо этого изменить сценарий postrotate на плавный перезапуск?
/usr/sbin/apachectl graceful > /dev/null
Это постротационное поведение, которое у меня уже есть для моих виртуальных хостов. Я не понимаю, почему скриптам httpd rotate требуется жесткая перезагрузка.
Мы будем очень благодарны за любые советы о том, как правильно это настроить.
Спасибо, Ральф
Исходный ответ неверен. Initscript "reload" просто передает команду reload в apachectl. При перезагрузке на httpd отправляется сигнал SIGHUP, который немедленно завершает дочерние процессы и делает прерывание подключенных в данный момент клиентов: http://httpd.apache.org/docs/current/stopping.html#hup
См. Сообщение об ошибке в пакете httpd RHEL: https://bugzilla.redhat.com/show_bug.cgi?id=480624
Причина, по которой изящный не используется в сценарии logrotate, заключается в том, что нет возможности гарантировать остановку дочерних процессов: http://httpd.apache.org/docs/current/stopping.html#graceful
Нет, команда '/ sbin / service httpd reload' не уничтожает все соединения, поскольку она не инициирует «жесткий перезапуск». CentOS запускает Apache через службу, другие ОС - через сценарии инициализации. Для всех из них перезагрузка означает плавный перезапуск / отправку Apache сигнала USR1:
«Сигнал USR1 или изящный сигнал заставляет родительский процесс посоветовать дочерним процессам выйти после их текущего запроса (или немедленно выйти, если они ничего не обслуживают). Родитель повторно считывает свои файлы конфигурации и повторно открывает свои файлы журналов. По мере того, как каждый дочерний элемент умирает, родитель заменяет его дочерним элементом из нового поколения конфигурации, который немедленно начинает обслуживать новые запросы ".