Когда я подключаю usbhub (7 стиков), udev отображает много сообщений в консоли. Могу ли я скрыть эти сообщения или отправить их в / dev / null?
В CentOS я не получаю udev
сообщения, когда подключаю простую USB-ручку. Вместо этого я получаю:
[sdb] Assuming drive cache: write through
Пару раз.
Но это не так udev
, или syslog
упоминание об этом на консоли. Вы можете в этом убедиться сами, убив syslogd
или rsyslogd
(пожалуйста, убедитесь, что это не рабочий сервер, и я надеюсь, что это не то, что нужно вставить USB-концентраторы и все такое :) и заново вставить USB-устройство.
Сообщения по-прежнему всплывают, так как, как упоминал Ульрих , это исходит от ядра или, если быть точнее, от USB-модуля, который использует kernel.printk
для отображения этих сообщений, не используя никаких системных служб вообще.
Выдержка из документации Linux sysctl/kernel.txt
:
Четыре значения в printk обозначают: console_loglevel, default_message_loglevel ,imum_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
Да, перейдя на другой канал системного журнала, если вы понимаете, как работает системный журнал:
Из руководства 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
и изменять это значение.