Come posso nascondere i messaggi di udev?


9

Quando collego un usbhub (7 stick) udev visualizza molti messaggi nella console. Posso nascondere questi messaggi o inviarli a / dev / null?

Risposte:


8

Su CentOS, non ricevo udevmessaggi quando inserisco una semplice levetta USB. Invece ottengo:

[sdb] Assuming drive cache: write through

un paio di volte.

Ma questo non è udev, o syslogmenzionarlo sulla console. Potresti saperlo di sicuro, uccidendo syslogdo rsyslogd(Assicurati che questo non sia un server di produzione, che spero non lo sia con l'inserimento di hub USB e tutto il resto :) e il reinserimento del dispositivo USB.

I messaggi continuano ad apparire, quindi, come ha detto Ulrich , questo proviene dal kernel, o dal modulo USB per l'esattezza, che usa kernel.printkper mostrarti questi messaggi, senza usare alcun servizio di sistema.

Un estratto dalla documentazione di Linux sysctl/kernel.txt:

I quattro valori in printk indicano rispettivamente console_loglevel, default_message_loglevel, minimum_console_loglevel e default_console_loglevel.

Questi valori influenzano il comportamento di printk () durante la stampa o la registrazione di messaggi di errore. Vedi 'man 2 syslog' per maggiori informazioni sui diversi livelli di Google.

  • console_loglevel: i messaggi con una priorità più alta di questa verranno stampati sulla console
  • default_message_level: i messaggi senza priorità esplicita verranno stampati con questa priorità
  • minimum_console_loglevel: valore minimo (più alto) su cui è possibile impostare console_loglevel
  • default_console_loglevel: valore predefinito per 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             */

Quindi, usando i valori sopra menzionati per argomenti su printk, puoi far chiudere il kernel a proposito di messaggi informativi o semplici avvisi sulla console. Per esempio,

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

ho reso silenziose le mie inserzioni della levetta USB. Vuoi farlo passare attraverso un riavvio, aggiungere una linea a /etc/sysctl.conf:

kernel.printk = 3 3 3 3

5

Sì, passando a un diverso canale syslog, purché tu capisca come funziona syslog:

Dal manuale di 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.

Quindi ora puoi modificare /etc/udev/udev.confe cambiare questo valore.


ok grazie per aver risposto. Come posso sapere quale valore Syslog devo usare per nascondere tutti i messaggi usb-udev?
jsterr

Devo utilizzare i valori di "Livello struttura" o "Livello di gravità"? Vedi en.wikipedia.org/wiki/Syslog#Facility_Levels
jsterr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.