![rsyslog 似乎没有写入日志文件,触摸文件后没有重新启动](https://linux22.com/image/57162/rsyslog%20%E4%BC%BC%E4%B9%8E%E6%B2%A1%E6%9C%89%E5%86%99%E5%85%A5%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%EF%BC%8C%E8%A7%A6%E6%91%B8%E6%96%87%E4%BB%B6%E5%90%8E%E6%B2%A1%E6%9C%89%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8.png)
我有一个单独的日志记录文件local7
,该文件是touch
ed 和
权限设置,从我的安装程序。但有时我发现日志没有被写入(在我重新安装之后),直到我这样做rsyslog restart
!
是否强制重新开始 rsyslog
日志文件是否touch
被另一个程序/应用程序编辑?
(由于安装程序运行为root
,日志文件的时间戳将由于以下原因而更改touch
- 这会导致rsyslog
不写入日志文件吗?)
答案1
rsyslogd 连续打开每个日志文件以进行写入,并且它不知道您已将文件从其下面拉出。安装程序删除的文件仍在磁盘上处于未链接状态,并且仍在写入中。您可以告诉 rsyslogd 重新打开所有日志文件,killall -HUP rsyslogd
而不是完全重新启动。
答案2
出于显而易见的原因,rsyslog 是一个严格设计的程序,遵循其配置。这是明确的。如果可以做你想做的事,那就会造成一个巨大的安全漏洞。