Como ocultar mensagens do udev?


9

Quando eu conecto um usbhub (7 sticks), o udev exibe muitas mensagens no console. Posso ocultar essas mensagens ou enviá-las para / dev / null?

Respostas:


8

No CentOS, não recebo udevmensagens quando conecto um simples polegar USB. Em vez disso, recebo:

[sdb] Assuming drive cache: write through

algumas vezes.

Mas isso não é udev, ou syslogmencionar isso para você no console. Você mesmo pode saber disso, matando syslogdou rsyslogd(por favor, certifique-se de que este não é um servidor de produção, espero que não seja isso com a inserção de hubs USB e tudo o mais :): e reinserindo o dispositivo USB.

As mensagens ainda aparecem, como Ulrich mencionou, isto é proveniente do kernel, ou do módulo USB, para ser exato, que é usado kernel.printkpara mostrar essas mensagens, sem usar nenhum serviço do sistema.

Um trecho da documentação do linux sysctl/kernel.txt:

Os quatro valores em printk indicam: console_loglevel, default_message_loglevel, minimum_console_loglevel e default_console_loglevel respectivamente.

Esses valores influenciam o comportamento printk () ao imprimir ou registrar mensagens de erro. Veja 'man 2 syslog' para mais informações sobre os diferentes níveis de log.

  • console_loglevel: mensagens com prioridade mais alta que isso serão impressas no console
  • default_message_level: mensagens sem prioridade explícita serão impressas com essa prioridade
  • minimum_console_loglevel: valor mínimo (mais alto) no qual console_loglevel pode ser configurado
  • default_console_loglevel: valor padrão para 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             */

Portanto, usando os valores acima mencionados para os argumentos do printk, você pode fazer o kernel calar a boca sobre mensagens informativas ou avisos simples no console. Por exemplo,

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

fez minhas inserções do thumbtick USB ficarem silenciosas. Deseja fazê-lo permanecer durante uma reinicialização, adicione uma linha a /etc/sysctl.conf:

kernel.printk = 3 3 3 3

5

Sim, mudando para um canal syslog diferente, desde que você entenda como o syslog funciona:

No manual do 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.

Então agora você pode editar /etc/udev/udev.confe alterar esse valor.


ok obrigado por responder. Como posso descobrir qual valor do Syslog tenho que usar e que todas as mensagens usb-udev estão ocultas?
jsterr

Preciso usar os valores de "Nível da instalação" ou "Nível de gravidade"? Veja en.wikipedia.org/wiki/Syslog#Facility_Levels
jsterr 8/08/12
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.