由于结合使用了 Debian Stretch,默认使用 systemd,并且日期(使用慢速时钟调节器(GH)),我的系统时钟经常改变。
结果就是journalctl -f
无休无止地收到垃圾邮件。
[...]
Nov 07 13:46:49 host systemd[766]: Time has been changed
Nov 07 13:46:50 host systemd[766]: Time has been changed
Nov 07 13:46:51 host systemd[766]: Time has been changed
[...]
这在使用 sysvinit 的 Debian wheezy 上不是问题。
如何配置 systemd 不将Time has been changed
消息发送到日志?
一个相关问题如何在 Debian jessie 上的 /var/log/syslog 中禁用 systemd 的“时间已更改”垃圾邮件?已经解决了,但是这个解决方案在这里不起作用。
答案1
消息来自src/core/manager.c
在 systemd 源中。它被硬编码为使用 INFO 系统日志记录级别。
默认情况下,systemd 会记录具有 INFO 级别的消息,如果您可以通过更改/etc/systemd/system.conf
为以下内容来更改它:
LogLevel=notice
但您也会丢失很多其他信息。
最好修补src/core/manager.c
一下:
log_struct(LOG_DEBUG,
MESSAGE_ID(SD_MESSAGE_TIME_CHANGE),
"MESSAGE=Time has been changed",
NULL);
(LOG_DEBUG
定义为sys/syslog.h
) 中的下一个更高级别和最高级别,或注释掉整个消息。
我还没有找到一种方法来仅报告最小大小为 X 秒的计时器更改。但如果这是可能的,这无疑会导致补丁更加复杂且容易出错。