当我插入 usbhub(插入 7 根)时,udev 会在控制台中显示很多消息。我可以隐藏这些消息或将它们发送到 /dev/null 吗?
在 CentOS 上,udev
当我插入一个简单的 USB 拇指棒时,我没有收到消息。相反,我得到:
[sdb] Assuming drive cache: write through
Run Code Online (Sandbox Code Playgroud)
一些时间。
但这不是udev
,或syslog
在控制台上向您提及这一点。您可以通过杀死syslogd
或rsyslogd
(请确保这不是生产服务器,我希望这不是插入 USB 集线器和所有这些 :)并重新插入 USB 设备来确定自己知道这一点。
消息仍然弹出,正如Ulrich提到的,这是来自内核,或者确切地说是 USB 模块,它用于kernel.printk
向您显示这些消息,根本不使用任何系统服务。
来自 linux 文档的摘录sysctl/kernel.txt
:
printk 中的四个值分别表示:console_loglevel、default_message_loglevel、minimum_console_loglevel 和 default_console_loglevel。
这些值会影响打印或记录错误消息时的 printk() 行为。有关不同日志级别的更多信息,请参阅“man 2 syslog”。
- console_loglevel:优先级高于此的消息将打印到控制台
- default_message_level:没有明确优先级的消息将以此优先级打印
- minimum_console_loglevel:console_loglevel 可以设置的最小(最高)值
- default_console_loglevel:console_loglevel 的默认值
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant condition */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
Run Code Online (Sandbox Code Playgroud)
因此,使用上面提到的 printk 参数值,您可以让内核关闭控制台上的信息性消息或简单警告。例如,
echo "3 3 3 3" > /proc/sys/kernel/printk
Run Code Online (Sandbox Code Playgroud)
让我插入 USB 拇指棒变得安静。你想让它通过重新启动坚持下去,添加一行到/etc/sysctl.conf
:
kernel.printk = 3 3 3 3
Run Code Online (Sandbox Code Playgroud)
是的,通过更改到不同的 syslog 频道,前提是您了解 syslog 的工作原理:
从udev手册:
udev_log
The logging priority which can be set to err ,info or the corre-
sponding numerical syslog(3) value. The default value is err.
Run Code Online (Sandbox Code Playgroud)
所以现在您可以编辑/etc/udev/udev.conf
和更改此值。
归档时间: |
|
查看次数: |
9486 次 |
最近记录: |