Làm thế nào tôi có thể ẩn tin nhắn của udev?


9

Khi tôi cắm một usbhub (7 gậy vào) udev sẽ hiển thị rất nhiều thông báo trong bảng điều khiển. Tôi có thể ẩn các tin nhắn này hoặc gửi chúng đến / dev / null không?

Câu trả lời:


8

Trên CentOS, tôi không nhận được udevtin nhắn khi cắm một ngón tay cái USB đơn giản. Thay vào đó tôi nhận được:

[sdb] Assuming drive cache: write through

một đôi lần.

Nhưng điều này không phải udev, hoặc syslogđề cập điều này với bạn trên bảng điều khiển. Bạn có thể biết điều này cho chính mình, bằng cách giết syslogdhoặc rsyslogd(Vui lòng đảm bảo rằng đây không phải là máy chủ sản xuất, mà tôi hy vọng nó không phải là gì với việc cắm các bộ chia USB và tất cả những thứ đó :) và lắp lại thiết bị USB.

Các thông báo vẫn bật lên, như Ulrich đã đề cập, điều này đến từ kernel hoặc chính xác là mô-đun USB, sử dụng kernel.printkđể hiển thị cho bạn các tin nhắn này, hoàn toàn không sử dụng bất kỳ dịch vụ hệ thống nào.

Một đoạn trích từ tài liệu linux sysctl/kernel.txt:

Bốn giá trị trong printk biểu thị: console_loglevel, default_message_loglevel, minim_console_loglevel và default_console_loglevel tương ứng.

Các giá trị này ảnh hưởng đến hành vi printk () khi in hoặc ghi thông báo lỗi. Xem 'man 2 syslog' để biết thêm thông tin về các loglevels khác nhau.

  • console_loglevel: tin nhắn có mức độ ưu tiên cao hơn mức này sẽ được in ra bàn điều khiển
  • default_message_level: tin nhắn không có mức ưu tiên rõ ràng sẽ được in với mức ưu tiên này
  • minim_console_loglevel: giá trị tối thiểu (cao nhất) mà console_loglevel có thể được đặt
  • default_console_loglevel: giá trị mặc định cho 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             */

Vì vậy, bằng cách sử dụng các giá trị được đề cập ở trên cho các đối số để in, bạn có thể khiến kernel im lặng về các thông báo thông tin hoặc các cảnh báo đơn giản trên bảng điều khiển. Ví dụ,

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

làm cho sự chèn ép của tôi về ngón tay cái USB trở nên im lặng. Bạn có muốn làm cho nó dính qua khởi động lại, thêm một dòng vào /etc/sysctl.conf:

kernel.printk = 3 3 3 3

5

Có, bằng cách thay đổi sang một kênh syslog khác, miễn là bạn hiểu cách syslog hoạt động:

Từ hướng dẫn sử dụng 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.

Vì vậy, bây giờ bạn có thể chỉnh sửa /etc/udev/udev.confvà thay đổi giá trị này.


được rồi, cảm ơn vì đã trả lời Làm cách nào tôi có thể tìm ra, giá trị Syslog nào tôi phải sử dụng mà tất cả các tin nhắn usb-udev đều bị ẩn?
ngày

Tôi có phải sử dụng các giá trị của "Cấp độ cơ sở" hoặc "Cấp độ nghiêm trọng" không? Xem en.wikipedia.org/wiki/Syslog#Facility_Levels
jsterr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.