ฉันจะซ่อนข้อความของ udev ได้อย่างไร


9

เมื่อฉันเสียบ usbhub (7 แท่งใน) udev แสดงข้อความจำนวนมากในคอนโซล ฉันสามารถซ่อนข้อความเหล่านี้หรือส่งไปที่ / dev / null ได้หรือไม่?

คำตอบ:


8

บน CentOS ฉันไม่ได้รับudevข้อความเมื่อฉันเสียบนิ้วหัวแม่มือ USB ง่ายๆ แทนที่จะได้รับ:

[sdb] Assuming drive cache: write through

สองสามครั้ง

แต่นี่ไม่ใช่udevหรือsyslogพูดถึงสิ่งนี้กับคุณบนคอนโซล คุณสามารถรู้เรื่องนี้ได้ด้วยตัวคุณเองโดยการฆ่าsyslogdหรือrsyslogd(โปรดตรวจสอบให้แน่ใจว่านี่ไม่ใช่เซิร์ฟเวอร์ที่ใช้งานจริงซึ่งฉันหวังว่ามันจะไม่เกี่ยวกับการใส่ฮับ USB และทุกอย่างที่ :) และใส่อุปกรณ์ USB อีกครั้ง

ข้อความยังคงปรากฏขึ้นดังนั้นตามที่Ulrichกล่าวมานี้มาจากเคอร์เนลหรือโมดูล USB ที่แน่นอนซึ่งใช้kernel.printkในการแสดงข้อความเหล่านี้ไม่ได้ใช้บริการระบบใด ๆ เลย

ข้อความที่ตัดตอนมาจากเอกสาร linux sysctl/kernel.txt:

สี่ค่าใน printk แสดงว่า: console_loglevel, default_message_loglevel, Minimum_console_loglevel และ default_console_loglevel ตามลำดับ

ค่าเหล่านี้มีผลต่อพฤติกรรม printk () เมื่อพิมพ์หรือบันทึกข้อความผิดพลาด ดู 'man 2 syslog' สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ loglevels ต่างๆ

  • console_loglevel: ข้อความที่มีลำดับความสำคัญสูงกว่านี้จะถูกพิมพ์ไปยังคอนโซล
  • default_message_level: ข้อความที่ไม่มีลำดับความสำคัญชัดเจนจะถูกพิมพ์ด้วยลำดับความสำคัญนี้
  • minim_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

ทำให้การแทรกของฉันของ thumbstick 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.