我的安装存在这个问题,一旦默认日志轮换软件在将我的复制到后将其删除lighttpd
,记录将停止。我必须停止并重新启动服务才能继续记录。access.log
access.log
access.log-YYYYMMDD
以下是发生此事件的 dedi 的信息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)
我不知道此机器上预装了什么日志轮换软件,也不知道为什么 lighttpdaccess.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。我的回答可能非常错误。