Bagaimana saya bisa menyembunyikan pesan udev?

9

Ketika saya pasang usbhub (7 batang) udev menampilkan banyak pesan di konsol. Bisakah saya menyembunyikan pesan ini atau mengirimnya ke / dev / null?

Jsterr
sumber

Jawaban:

8

Pada CentOS, saya tidak mendapatkan udevpesan ketika saya mencolokkan thumbstick USB sederhana. Sebaliknya saya mendapatkan:

[sdb] Assuming drive cache: write through

beberapa kali.

Tetapi ini bukan udev, atau syslogmenyebutkan ini kepada Anda di konsol. Anda dapat mengetahui hal ini dengan pasti, dengan mematikan syslogdatau rsyslogd(Harap pastikan ini bukan server produksi, yang saya harap bukan seperti itu dengan memasukkan hub USB dan semua itu :) dan memasukkan kembali perangkat USB.

Pesan masih muncul, sehingga seperti yang disebutkan Ulrich , ini berasal dari kernel, atau tepatnya modul USB, yang digunakan kernel.printkuntuk menampilkan pesan-pesan ini kepada Anda, tidak menggunakan layanan sistem sama sekali.

Kutipan dari dokumentasi linux sysctl/kernel.txt:

Empat nilai dalam printk menunjukkan: console_loglevel, default_message_loglevel, minimum_console_loglevel dan default_console_loglevel.

Nilai-nilai ini mempengaruhi perilaku printk () saat mencetak atau mencatat pesan kesalahan. Lihat 'man 2 syslog' untuk info lebih lanjut tentang loglevel yang berbeda.

  • console_loglevel: pesan dengan prioritas lebih tinggi daripada ini akan dicetak ke konsol
  • default_message_level: pesan tanpa prioritas eksplisit akan dicetak dengan prioritas ini
  • minimum_console_loglevel: nilai minimum (tertinggi) yang bisa disetel console_loglevel
  • default_console_loglevel: nilai default untuk 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             */

Jadi, dengan menggunakan nilai yang disebutkan di atas untuk mencetak argumen, Anda bisa meminta kernel untuk tutup mulut tentang pesan informasi atau peringatan sederhana di konsol. Sebagai contoh,

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

membuat saya memasukkan thumbstick USB semua menjadi tenang. Apakah Anda ingin membuatnya tetap melalui reboot, tambahkan baris ke /etc/sysctl.conf:

kernel.printk = 3 3 3 3
reiche
sumber
5

Ya, dengan mengubah saluran syslog yang berbeda, asalkan Anda memahami cara kerja syslog:

Dari manual 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.

Jadi sekarang Anda dapat mengedit /etc/udev/udev.confdan mengubah nilai ini.

bunga aster
sumber
oke terima kasih sudah menjawab. Bagaimana saya bisa mengetahui, nilai Syslog mana yang harus saya gunakan agar semua pesan usb-udev disembunyikan?
jsterr
Apakah saya harus menggunakan nilai "Level Fasilitas" atau "Tingkat Permasalahan"? Lihat en.wikipedia.org/wiki/Syslog#Facility_Levels
jsterr