如何解决系统日志中大量与 Mingetty 相关的消息

如何解决系统日志中大量与 Mingetty 相关的消息

我在 VPS(运行 CentOS 6.8)上运行我的小公司的网站和几项服务,我对该 VPS 拥有完全的管理权限。

为了找出 PHP 脚本中的内存泄漏问题,我监控 VPS 一段时间了,再次查看了日志。我看到的是一长串日志消息,例如:

错误消息的屏幕截图

我想解决导致这些错误“污染”系统日志的任何配置问题,因为它们会使日志无法使用。每 5 秒,我都会收到一批这样的信息:

    Feb 17 12:43:03 vpsxxxxx init: tty (/dev/tty2) main process (1381) terminated with status 1
    Feb 17 12:43:03 vpsxxxxx init: tty (/dev/tty2) main process ended, respawning
    Feb 17 12:43:03 vpsxxxxx init: tty (/dev/tty1) main process (1382) terminated with status 1
    Feb 17 12:43:03 vpsxxxxx init: tty (/dev/tty1) main process ended, respawning
    Feb 17 12:43:03 vpsxxxxx /sbin/mingetty[1419]: tty2: no controlling tty: Operation not permitted
    Feb 17 12:43:03 vpsxxxxx /sbin/mingetty[1420]: tty1: no controlling tty: Operation not permitted

当日志轮换时(每周一次),我发现日志文件中有超过 60 MB 的大小,这让 nano 不堪重负。

我不知道 mingetty 对于 VPS 正常运行(或通过 SSH 连接)有多重要。我是唯一管理服务器的人,但我很少同时使用 2 个以上的 SSH 连接。

有没有办法解决这么多与 Mingetty 相关的日志消息?

答案1

由于你的机器是虚拟机,你可以完全禁用 Mingetty 和虚拟控制台,如http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/getty-mingetty.html

如果机器没有视频卡,则从 /etc/inittab 中删除所有 mingetty 条目。

由于您使用的是 CentOS 6,我猜您使用的是 upstart,并且没有 inittab。要禁用 tty,您可以创建两个文件 /etc/init.d/tty1.override 和 /etc/init.d/tty2.override,其中只包含单词“manual”(所有命令都要以 root 身份传递):

echo manual > /etc/init/tty1.override
echo manual > /etc/init/tty2.override

stop tty1但我建议你在 :和之前做一些测试stop tty2,并尝试打开一个新的 ssh 连接。如果成功,继续禁用 tty1 和 tty2。

答案2

@Hexdump 通过阅读我关于 upstart 的资料,引导我找到了解决方案。非常感谢。

对我来说,解决方案分为两个步骤:

  • nano /etc/init/start-ttys.override(文件内容如下)
  • shutdown -r now

覆盖文件的内容是:

env ACTIVE_CONSOLES=/dev/tty[1-1]
script

end script

基本上,我正在用无操作脚本替换启动 mingetty 实例的有问题的脚本。

第一行是我试图减少 tty 数量的残留,按照此主题,这也表明处理方式存在错误ACTIVE_CONSOLES。这个错误就是需要重新启动的原因。我不确定第一行是否有必要。

问题解决了,但我认为根本原因仍未解决,这让我感到很不爽:如果我在实际机器上遇到此日志污染问题,我将无法禁用该脚本。因此,我认为这是一个不成熟的解决方案,但就目前而言,它足以应付当前情况。

相关内容