Jak mogę ukryć wiadomości udev?

9

Po podłączeniu usbhub (7 wtyków) udev wyświetla wiele komunikatów w konsoli. Czy mogę ukryć te wiadomości lub wysłać je do / dev / null?

jsterr
źródło

Odpowiedzi:

8

W CentOS nie otrzymuję udevwiadomości, gdy podłączę prostą pamięć USB. Zamiast tego otrzymuję:

[sdb] Assuming drive cache: write through

kilka razy.

Ale to nie jest udev, ani nie syslogwspominając o tym na konsoli. Możesz to wiedzieć na pewno, zabijając syslogdlub rsyslogd(Upewnij się, że to nie jest serwer produkcyjny, co mam nadzieję, że nie jest tak po włożeniu koncentratorów USB i tak dalej :) i ponownym włożeniu urządzenia USB.

Wiadomości wciąż się wyskakują, tak jak wspomniał Ulrich , pochodzą one z jądra, a dokładniej z modułu USB, który kernel.printkpokazuje te komunikaty, nie korzystając w ogóle z żadnych usług systemowych.

Fragment dokumentacji systemu Linux sysctl/kernel.txt:

Cztery wartości w printk oznaczają odpowiednio: console_loglevel, default_message_loglevel, minimum_console_loglevel i default_console_loglevel.

Wartości te wpływają na zachowanie printk () podczas drukowania lub rejestrowania komunikatów o błędach. Zobacz „syslog man 2”, aby uzyskać więcej informacji na temat różnych loglevels.

  • console_loglevel: wiadomości o wyższym priorytecie niż ten zostaną wydrukowane na konsoli
  • default_message_level: wiadomości bez wyraźnego priorytetu będą drukowane z tym priorytetem
  • minimum_console_loglevel: minimalna (najwyższa) wartość, na którą można ustawić console_loglevel
  • default_console_loglevel: wartość domyślna dla 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             */

Tak więc używając wyżej wymienionych wartości argumentów do printk, możesz sprawić, aby jądro się zamknęło na temat komunikatów informacyjnych lub prostych ostrzeżeń na konsoli. Na przykład,

echo "3 3 3 3" > /proc/sys/kernel/printk

sprawiłem, że moje wkładki USB były wyciszone. Czy chcesz, aby przechodził przez restart, dodaj linię do /etc/sysctl.conf:

kernel.printk = 3 3 3 3
reiche
źródło
5

Tak, przechodząc na inny kanał syslog, pod warunkiem, że rozumiesz, jak działa syslog:

Z instrukcji 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.

Teraz możesz edytować /etc/udev/udev.confi zmieniać tę wartość.

stokrotka
źródło
ok dziękuję za odpowiedź. Jak mogę dowiedzieć się, której wartości Syslog muszę użyć, że wszystkie wiadomości USB-udev są ukryte?
jsterr
Czy muszę korzystać z wartości „Poziom infrastruktury” lub „Poziom ważności”? Zobacz en.wikipedia.org/wiki/Syslog#Facility_Levels
jsterr