syslog-ng 3.2.5服务器停止接收数据,可能与logrotate有关

我在Unix和Linux中提出了这个问题,但是我认为在这里实际上更合适。

目前,我使用下面的logrotate.dconfiguration

/var/log/messages { daily compress rotate 7 postrotate /bin/kill -HUP `cat /var/run/syslog-ng.pid 2> /dev/null` 2> /dev/null || true endscript } 

但是,我在syslog-ng存储库的官方logrotate示例中看到,不是执行kill -HUP,而是执行重新加载,例如:

 /var/log/syslog.log { rotate 7 daily compress postrotate /etc/init.d/syslog-ng reload >/dev/null endscript } 

这两种方法之间有什么重大的区别,这会使他们的工作方式,但我的方式不工作,或者你会指望有其他问题吗? 这是一个很老的syslog-ng版本,所以我不确定是否可以关联。

对于额外的上下文,这里是我的版本的syslog-ng的初始化脚本的重载function。

 reload() { verify_config echo -n $"Reloading syslog-ng: " killproc syslog-ng -HUP RETVAL=$? echo return $RETVAL } 

当系统处于故障状态,并没有注意到系统状态过于可疑时,我检查了lsof,空闲内存等等。

这个问题与logrotate无关,通过更新到更新版本的syslog-ng(到3.9.1),问题似乎被解决了。 我认为根本原因是由服务器上的负载量引起的错误。 我可以看出,这两个示例都成功地重新加载了这个服务,这并不是什么问题,在旧的版本之间切换并不能最终改变崩溃的行为。