Як я можу приховати повідомлення udev?


9

Коли я підключаю usbhub (7 паличок), udev відображає безліч повідомлень у консолі. Чи можу я приховати ці повідомлення або надіслати їх до / dev / null?

Відповіді:


8

У 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, minimum_console_loglevel та default_console_loglevel відповідно.

Ці значення впливають на поведінку printk () під час друку чи реєстрації повідомлень про помилки. Див. "Man 2 syslog", щоб отримати докладнішу інформацію про різні коси.

  • console_loglevel: повідомлення з більш високим пріоритетом, ніж це, будуть надруковані на консоль
  • default_message_level: повідомлення без явного пріоритету будуть надруковані з цим пріоритетом
  • minimal_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

5

Так, перейшовши на інший канал 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та змінювати це значення.


добре дякую за відповідь. Як я можу дізнатися, яке значення Syslog я повинен використовувати, щоб усі повідомлення usb-udev були прихованими?
jsterr

Чи потрібно використовувати значення "рівень об'єкта" або "рівень серйозності"? Дивіться en.wikipedia.org/wiki/Syslog#Facility_Levels
jsterr
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.