最近,当我通过 PuTTY 连接到相关 OpenSUSE 系统时,这些消息开始直接弹出到我的提示符中:
Message from syslogd@host at Aug 5 11:04:03 ...
kernel:[ 6177.851012] EIP: [<75c0234e>] 0x75c0234e SS:ESP 0068:f324dde1
Message from syslogd@host at Aug 5 11:15:01 ...
kernel:[ 6836.654020] Process sh (pid: 6245, ti=f2bee000 task=f32fd2b0 task.ti=f2bee000)
Message from syslogd@host at Aug 5 11:15:01 ...
kernel:[ 6836.654020] Stack:
Message from syslogd@host at Aug 5 11:15:01 ...
kernel:[ 6836.654020] Call Trace:
Message from syslogd@host at Aug 5 11:15:01 ...
kernel:[ 6836.654020] Inexact backtrace:
Message from syslogd@host at Aug 5 11:15:01 ...
kernel:[ 6836.654020]
Message from syslogd@host at Aug 5 11:15:01 ...
kernel:[ 6836.654020] Code: Bad EIP value.
Message from syslogd@host at Aug 5 11:15:01 ...
kernel:[ 6836.654020] EIP: [<75c0234e>] 0x75c0234e SS:ESP 0068:f2befead
我了解一些关于 Linux 的非常基本的知识,但这让我措手不及。这是什么意思?我该如何排除故障?
编辑事实证明,系统现在实际上无法访问,虽然它确实回复了 ping,但我无法通过 SSH 连接到它。我可以在机器上进行任何物理操作吗?
答案1
这些消息看起来像是内核有一个内核恐慌。基本上已经崩溃了。如果系统不稳定/崩溃,您无能为力。
通常这些类型的消息将显示在控制台上。在那里,您可以使用该命令dmesg -n 1
来禁止打印它们,因为当它们是良性的时,它们可能会有点烦人。
摘自dmesg
手册页
-n level
Set the level at which logging of messages is done to the
console. For example, -n 1 prevents all messages, except panic
messages, from appearing on the console. All levels of messages
are still written to /proc/kmsg, so syslogd(8) can still be used
to control exactly where kernel messages appear. When the -n option
is used, dmesg will not print or clear the kernel ring buffer.
EIP 值错误
此错误通常意味着您的硬件(通常是 RAM)出现某种类型的故障。我会招募类似的东西内存测试86+验证 RAM 是否正常工作。
答案2
仅当运行 cgminer 的特定分支 (vt_hoang) 时,我才能在 Raspberry Pi Zero 上看到它。它通常运行大约 2 天并导致系统崩溃。同一个 cgminer 也会使不同的 Pi 崩溃。我之前没有注意到发送给 stderr 的消息,我只是将日志记录设置为在重新启动后保持不变,并查看journalctl 输出。我需要用 valgrind 和 gdb 再试一次。
但错误消息只是说,让他们闭嘴并不能解决根本问题。不同的内核可能会有不同的行为,但也可能是你正在运行的某些软件。这不一定是硬件问题。