Исходный ответ не корректен. initscript "перезагрузка" просто передает команду перезагрузки apachectl. Перезагрузка отправляет SIGHUP в httpd, который сразу завершает дочерние процессы и действительно прерывает в настоящее время соединяемые клиенты: http://httpd.apache.org/docs/current/stopping.html#hup
Посмотрите ошибку, зарегистрированную против RHEL httpd пакет: https://bugzilla.redhat.com/show_bug.cgi? id=480624
Корректная причина не используется в logrotate сценарии, то, потому что нет никакого способа гарантировать, дочерние процессы остановились: http://httpd.apache.org/docs/current/stopping.html#graceful
Have you tried to log using syslog with Apache's CustomLog
directive?
For example,
CustomLog "|/usr/bin/logger -t 'httpd'" combined
That might help you performance-wise, especially if you tune the syslog daemon itself to write asynchronously. With more fine-grained sysloggers such as syslog-ng
, you have many performance-related tunables.
Another advantage of this approach would be that this way you could send everything to a centralized log server and let it receive the disk I/O strain instead of your web server.