停止将系统日志消息发送到所有打开的终端

停止将系统日志消息发送到所有打开的终端

我们的一台服务器出现硬件问题,内核不断发出如下消息:

kernel: EDAC MC0: UE row 0, channel-a= 0 channel-b= 1 labels "-": NON-FATAL recoverable (Branch=0 DRAM-Bank=0 Buffer ID = 0 RDWR=Read RAS=0 CAS=0 NON-FATAL recoverable Err=0x2000 (FB-DIMM Configuration Write error on first attempt))

除了将消息记录到 /var/log/messages 中之外,它还会将其发送到全部登录终端会话(不仅仅是系统控制台)。

虽然了解情况是件好事(当然我们会修复 RAM 问题),但这使得我们无法在该服务器上工作;消息会在编辑行、文件等内容的过程中出现。

我如何才能隐藏这些消息?理想情况下,我希望能够在当前会话中执行此操作,让其他用户收到这些消息。

系统是Centos5。

答案1

如果在 /etc/syslogd.conf 文件中使用 '*' 作为目的地,则 syslogd 似乎会通过 'wall' 向所有用户发送消息。

默认配置中有此行:

*.emerg                                                        *

注释掉此行并重新加载 syslogd 可以完全抑制这些消息,但您最好记住稍后重新启用它们。

我没有找到一种方法来仅在一个会话中抑制它们。命令“mesg”应该能够停止会话中的传入消息,但它并没有停止这些消息。

答案2

如果您在控制台中收到如下打印的广播消息:

Message from syslogd@hostname
Broadcast message from systemd-journald@hostname

这些被视为紧急消息,但如果您需要关闭它们,请编辑此文件/etc/rsyslog.conf,或者它可能位于此位置,/etc/rsyslog.d/50-default.conf具体取决于您的机器。然后像这样注释此行:

#*.emerg                                :omusrmsg:*

无论如何,如果您能提前查看这些消息,最好知道是什么导致了这些紧急消息。

有关更详细的答案,请查看:https://stackoverflow.com/a/41456076/366884

相关内容