busybox-syslog 启动前缺少早期启动日志

busybox-syslog 启动前缺少早期启动日志

问题:在 syslogd 启动之前发生的内核日志不会附加到我的 syslog 中。

系统描述:我有 syslogd 在启动序列中大约 5 秒启动。我有一个附加到 /dev/kmesg 的脚本,该脚本在启动序列中运行大约 2 秒。它在 syslogd 启动之前运行。

我正在运行 klogd 将内核日志发送到 syslog,但它只发送 syslogd 启动后发生的内核日志。

我在 syslog 中缺少脚本中的内核日志,因为 syslogd 在脚本运行时未启动。

我在系统日志中看到 5 秒后的所有内核日志。如果我只是在启动 5 秒后附加到 /dev/kmsg,我会看到日志进入 syslog。

我的 /etc/syslog.conf 将所有内容配置为像这样进入系统日志

/路径/到/系统日志

我需要让 klogd 将 kmsg 环形缓冲区的现有内容记录到 syslog,而不仅仅是 klogd 运行后附加到 /dev/kmsg 的内容。我该怎么做呢?

答案1

启动后klogd,运行它的第二个副本单次模式( klogd -o)。它将读取并处理内核消息缓冲区中现有的消息,然后退出。

启动first 的长期实例klogd应该确保没有消息丢失。

如果您无法做到这一点(例如,如果您有一个非常旧的版本klogd或来自busybox类似嵌入式系统工具包的版本),那么可以执行以下操作:

if [ -e /var/log/dmesg.boot ]; then
    mv /var/log/dmesg.boot /var/log/dmesg.prevboot
fi
dmesg > /var/log/dmesg.boot

一旦根文件系统可写?

相关内容