Lighttpd перестает писать в access.log
У меня есть эта проблема с моим lighttpd
установка, где вход в access.log
прекратится, как только программное обеспечение для ротации журналов по умолчанию стирает мой access.log
после копирования в access.log-YYYYMMDD
, Я должен остановить и перезапустить службу, чтобы продолжить запись в журнал.
Вот uname
а также centos-release
Информация для деди, где это происходит:
np ~ > uname -a && cat /etc/centos-release
Linux sevlet 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
CentOS Linux release 7.0.1406 (Core)
Я понятия не имею, какое программное обеспечение для ротации журналов предварительно установлено на этом устройстве, и я понятия не имею, почему lighttpd полностью перестает писать в access.log
как только файл будет повернут. У кого-нибудь есть идеи, что происходит и / или как это исправить?
Решено!
Любой, у кого есть эта проблема или похожая на минимальной установке CentOS 7, пожалуйста, прочитайте:
@chutz предложил мне взглянуть на lighttpd
конфигурация в /etc/logrotate.d/
, Конфигурация по умолчанию для lighttpd
работает, но вызывает killall
перезапустить демон. Минимальная установка CentOS 7 не включает killall
,
Для установки на CentOS:
yum -y install psmisc
Надеюсь, это поможет кому-то!
1 ответ
CentOS поставляется с Logrotate.
Вам нужно перезапустить или иным образом сигнализировать любых демонов после перемещения их файлов журнала. Вот как работает Linux. Файл может быть переименован или удален, но пока процесс имеет открытый файл (т. Е. Процесс имеет открытый дескриптор файла, который не зависит от имени файла), этот процесс может продолжать запись в него. Да, можно продолжить запись в удаленный файл, и иногда может даже оказаться возможным восстановить удаленный файл, если у кого-то он еще открыт.
Проверьте /etc/logrotate.d
примеры того, как перезагрузить процесс после ротации журнала.
PS Я не заметил, что вы используете CentOS 7. Мой ответ может быть очень неправильным.