Answers:
在CentOS上,udev
插入一个简单的USB指尖时没有收到消息。相反,我得到:
[sdb] Assuming drive cache: write through
一些时间。
但这不是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 */
因此,将上述值用作printk的参数,可以使内核关闭有关参考消息或控制台上的简单警告的信息。例如,
echo "3 3 3 3" > /proc/sys/kernel/printk
使我插入的USB指尖完全安静了。您是否要通过重新启动使其坚持下去,请在以下行添加一行/etc/sysctl.conf
:
kernel.printk = 3 3 3 3
是的,只要您了解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.
因此,现在您可以编辑/etc/udev/udev.conf
和更改此值。