为了更轻松地调试问题,我删除了 /var/log/messages .... 但它还没有回来!
我认为来自内核和 autofs 等模块的调试消息已路由到此文件。但即使在我循环 autofs(设置为详细日志记录)之后,该文件也消失了。
如何恢复?
答案1
您需要重新启动系统记录器:
service rsyslog restart
(作为root
)。
重新启动也会有同样的效果,但有点矫枉过正了。
日志消息发送到 CentOS 上的系统记录器rsyslog
,记录器根据其配置(甚至远程系统上的其他记录器)写入各种文件。启动时rsyslog
打开,并保持打开状态;/var/log/messages
删除/var/log/messages
会使其从目录中消失,但该文件仍然存在并且可供任何打开该文件的程序使用。因此,rsyslog
继续记录到已删除的文件...重新启动它会导致它重新打开该文件,在这种情况下首先重新创建它。
答案2
重新启动会有所帮助:文件已打开(创造如果它不存在)在启动,虽然您可以使用 来“查看”它lsof
,但它会从文件系统中消失,直到有东西再次打开它。
一旦你取回你的文件,我建议证明没有其他东西可以打开它重命名文件。如果任何其他进程创建了它,您会在它发生时看到它。