usbhub(7)을 연결하면 udev는 콘솔에 많은 메시지를 표시합니다. 이 메시지를 숨기거나 /dev/null로 보낼 수 있나요?
답변1
udev
CentOS에서 간단한 USB 스틱을 연결하면 메시지가 표시되지 않습니다. 대신 나는 다음을 얻습니다.
[sdb] Assuming drive cache: write through
얼마간.
하지만 그렇지 않거나 udev
콘솔 syslog
에서 언급된 내용입니다. 이를 확인하려면 USB 장치를 종료 syslogd
하거나 rsyslogd
(프로덕션 서버가 아닌지 확인하고 USB 허브 등에 연결되어 있지 않기를 바랍니다) USB 장치를 다시 연결하면 됩니다.
계속 메시지가 뜨는데,울리히kernel.printk
앞서 언급했듯이 이는 시스템 서비스를 전혀 사용하지 않고 이러한 메시지를 표시하는 데 사용되는 커널 또는 오히려 USB 모듈에서 발생합니다 .
Linux 문서에서 발췌 sysctl/kernel.txt
:
printk의 네 가지 값은 console_loglevel, default_message_loglevel, 최소_console_loglevel 및 default_console_loglevel을 나타냅니다.
이 값은 오류 메시지를 인쇄하거나 기록할 때 printk()의 동작에 영향을 줍니다. 다양한 로그 수준에 대한 자세한 내용은 "man 2 syslog"를 참조하세요.
- console_loglevel: 이보다 우선순위가 높은 메시지는 콘솔에 인쇄됩니다.
- default_message_level: 명시적인 우선순위가 없는 메시지는 이 우선순위로 인쇄됩니다.
- minimum_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
USB 스틱을 연결하면 조용해집니다. 재부팅 후에도 지속되도록 하려면 다음 줄을 추가하십시오 /etc/sysctl.conf
.
kernel.printk = 3 3 3 3
답변2
예, 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
이 값을 편집하고 변경할 수 있습니다.
답변3
간단히 시도해 볼 수 있습니다.sudo setterm --msg off