Dar*_*ark 6 linux kernel systemd
我正在使用过度发送内核消息的设备(每秒 10-100 条消息,Mediatek 驱动程序......),从内核本身删除日志记录(分布在数百个文件中)是不可行的。
我已经接受 dmesg 在这个设备上几乎没用,但不幸的是 systemd 日志也受到了影响。
是否可以过滤/禁用将内核消息记录到 systemd 日志中?
良好的 Linux/系统管理员实践会建议您使用类似 fzbd 的解决方案,在该解决方案中,您将不需要查看的特定日志静音,而不是批量禁用内核消息。
尽管如此,仍然值得一提的是,从systemd 235 开始,有一个选项可以禁用journald.conf文件中的内核消息。主要的 journal.conf 文档提到了这个选项,它允许您禁用 journald 读取/dev/kmsg。
235 版本可能尚未在许多发行版中找到,因此您可以使用以下命令检查您的 systemd 版本:
systemctl --version
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 235 或更高版本,您可以先备份原始 /etc/systemd/journald.conf 文件,然后取消对相关行的注释并将其更改yes为no:
ReadKMsg=no
Run Code Online (Sandbox Code Playgroud)
保存、退出并重新启动您的日志服务:
sudo systemctl restart systemd-journald.service
Run Code Online (Sandbox Code Playgroud)
查看您的设备的内核模块是否有一些可以禁用的日志记录/调试参数:
modprobe $module_name
ls /sys/module/$module_name/parameters
Run Code Online (Sandbox Code Playgroud)
如果没有,对于版本 < 235 的 systemd,您能做的最好的事情就是按日志级别过滤消息,例如:
journalctl --priority=3
Run Code Online (Sandbox Code Playgroud)
您可以使用 检查日志值man syslog。
请注意,降低内核日志记录级别kernel.printk仅影响控制台日志记录,因此无论此参数中的值如何,用户态应用程序仍将显示相同的消息。
| 归档时间: |
|
| 查看次数: |
14325 次 |
| 最近记录: |