У меня есть эта проблема с моим lighttpd
установка, где вход к access.log
прекратится, после того как поворачивающее журнал программное обеспечение по умолчанию стирает мой access.log
после копирования его к access.log-YYYYMMDD
. Я должен остановить и перезапустить сервис, чтобы заставить вход продолжаться.
Вот uname
и centos-release
информация для dedi это происходит на:
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
Надежда это помогает кому-то!
CentOS поставляется с logrotate.
Вам необходимо перезапустить или каким-либо иным образом сигнализировать демонам после перемещения их файлов журналов. Так работает Linux. Файл может быть переименован или удален, но пока процесс открыт (т.е. процесс имеет открытый дескриптор файла, который не зависит от имени файла), этот процесс может продолжать запись в него. Да, можно продолжить запись в удаленный файл, и когда-нибудь даже удастся восстановить удаленный файл, пока он открыт у кого-то.
Проверьте /etc/logrotate.d
примеры того, как перезагрузить процесс после ротации журнала.
PS Я не заметил, что вы используете CentOS 7. Мой ответ может быть очень неправильным.