【发布时间】:2012-12-18 05:20:49
【问题描述】:
我正在使用 APC 作为操作码和应用程序缓存运行 php5 FPM。像往常一样,我将 php 错误记录到一个文件中。
由于它变得相当大,我尝试配置 logrotate。它可以工作,但是在轮换之后,php 继续记录到现有的日志文件,即使它被重命名。这导致 scripts.log 成为 0B 文件,并且 scripts.log.1 继续进一步增长。
我认为(没有尝试过)在 postrotate 中运行 php5-fpm reload 可以解决这个问题,但每次都会清除我的 APC 缓存。
有人知道如何让它正常工作吗?
【问题讨论】:
-
当您轮换日志时,我认为您也需要重新启动 FPM。或者您需要告诉 logrotate 实际创建一个新的 inode 并截断现有文件。否则,FPM 将继续写入日志文件 inode,因此单独重命名文件无济于事(这就是您在问题中描述的行为)。
-
copytruncate 只是你的救命稻草..