由于某种原因,每次我插入 USB 设备时,一大堆消息都会转储到终端上。 (说一下设备ID、缓冲模式等)
我该如何防止这种情况发生?
更新:
有几个人问过我一些问题,所以让我总结一下我迄今为止收集到的可能相关的信息:
无论我当前正在查看哪个虚拟终端,都会出现零散的文本。每行都带有看起来像系统正常运行时间的前缀。
该
quiet
参数已经在内核命令行上。当前设置
printk
为6 4 1 7
。据我所知,该
syslog
软件包甚至没有安装。 (也不是rsyslog
。)当然,在/etc
.肯定是 init
systemd
。/etc/sysctl.d
是空的。/etc/sysctl.conf
仅包含评论。
答案1
启动方式:
quiet loglevel=3
欲了解信息:
quiet [KNL] Disable most log messages
loglevel= All Kernel Messages with a loglevel smaller than the
console loglevel will be printed to the console. It can
also be changed with klogd or other programs. The
loglevels are defined as follows:
0 (KERN_EMERG) system is unusable
1 (KERN_ALERT) action must be taken immediately
2 (KERN_CRIT) critical conditions
3 (KERN_ERR) error conditions
4 (KERN_WARNING) warning conditions
5 (KERN_NOTICE) normal but significant condition
6 (KERN_INFO) informational
7 (KERN_DEBUG) debug-level messages
启动检查后(您希望看到 3 作为报告的第一个数字):
$ sysctl kernel.printk
kernel.printk = 3 4 1 4
kernel.printk
欲了解 更多信息,请参阅kernel.printk 值的描述。
printk
稍后可能会在启动过程中被 覆盖sysctl
,通常一次处理
/etc/sysctl.conf
或/etc/sysctl.d/*
(取决于您的发行版和启动过程)。
然后,根据您的日志守护程序,您可能需要进一步调整。因为systemd
您可能会查看/etc/systemd/journald.conf
.
答案2
如果消息前面有数字,则这些消息是由 Linux 内核生成的。 (该数字表示自系统启动以来的秒数。)要停止这些消息,请将该quiet
参数添加到内核命令行中。您可以通过编辑 /boot 分区中的文件或使用引导加载程序提供的配置工具(例如 GRUB)来完成此操作。这也会在系统启动时停止显示消息。
答案3
如果Miroslav Koskar 关于内核的建议loglevel
没有帮助(你也可以在那里使用 2 或 1 而不是 3,IMO),看看你的/etc/syslog.conf
(或rsyslog.conf
) 中包含/dev/console
.这表示系统记录器传递到控制台的消息级别,或许如果内核没有直接执行此操作,则会出现这种情况。
如果该行看起来像这样:
*.warn /dev/console
更改*.warn
为*.crit
或*.emerg
,或者直接将其注释掉。有关更多信息,请参阅系统日志文档。
由于loglevel
不起作用并且您显然没有 syslogd (坏主意,顺便说一句),问题可能是您的 printk 设置是 6 4 1 7。第一个是控制台日志级别,这就是您需要更改的内容。您可以通过以下两种方式之一以 root 身份执行此操作:
sysctl kernel.printk="2 4 1 7"
- or -
echo "2 4 1 7" > /proc/sys/kernel/printk
然后您可以使用sysctl kernel.printk
或检查它们cat /proc/sys/kernel/printk
。 USB 消息不太可能是关键消息(日志级别 2),并且如果它们从任何模块无优先级提交,则它们使用默认值,即四个 printk 值中的第二个(在本例中为 4)。
如果这对您有用,您应该添加一个文件并添加/etc/sysctl.d/
一行:
kernel.printk = 2 4 1 7
我认为你不需要在那里引用。如果该目录不存在,请向 中添加一行/etc/sysctl.conf
,并在必要时创建它。有关详细信息,请参阅man sysctl.conf
。
答案4
我最终能够通过将以下命令添加到我的启动脚本之一来解决此问题:
klogconsole -l 3
这似乎让系统关闭了。 (至少在执行命令之后。)