logrotate:为什么在旋转后重新加载服务器配置

时间:2012-12-02 00:17:36

标签: logging configuration logrotate log-rotation

我看到nginx和apache在他们的日志轮换后都发送了某种形式的重载信号。为什么是这样?我想知道,因为我正在为我自己的应用程序进行设置,并且想知道如果日志在没有更新的情况下轮换,某个应用程序是否会因某些原因而挂起。

1 个答案:

答案 0 :(得分:0)

这个问题有一个很好的答案:How to avoid apache reload when rotating logs?

他们这样做是因为当他们打开日志文件进行写入时,他们会收到一个文件句柄。移动文件时句柄不会改变,这意味着他们认为他们正在写入日志文件,但在移动文件后,他们正在写入错误的日志文件。因此,当日志旋转时,它们会正常重新加载,以确保它们正在创建一个写入正确文件位置的新文件句柄。

如果您担心自己的应用会发生什么,应该read more about logrotate,并特别注意prerotatepostrotate。您可以让程序在旋转日志文件时监听信号以重置日志句柄,或者您可以对建议的第一个链接执行答案,然后只复制文件并截断​​原始文件,这样就不会不用担心。