/dev/kmsg
꼬리에 메시지를 작성할 때 /proc/kmsg
메시지는 매우 무작위로 나타나며 /var/log/kern.log
.
그러나 dmesg
모든 메시지는 올바르게 가져옵니다.
예
# Terminal 1
sudo tail -f /proc/kmsg
# Terminal 2
tail -f /var/log/kern.log
# Terminal 3
sudo sh -c 'echo "<1> Kernel log message" > /dev/kmsg'
sudo sh -c 'echo "<1> Kernel log message" > /dev/kmsg'
sudo sh -c 'echo "<1> Kernel log message" > /dev/kmsg'
sudo sh -c 'echo "<1> Kernel log message" > /dev/kmsg'
결과:
# Terminal 1
# The message is shown at irregular intervals without a clear pattern
sudo tail -f /proc/kmsg
<9>[37102.185491] Kernel log message
# Terminal 2
# No message is ever shown
tail -f /var/log/kern.log
# Terminal 4
# Everything is always here
dmesg
[37101.556366] Kernel log message
[37102.185491] Kernel log message
[37103.042422] Kernel log message
USB 스틱을 삽입하면 데이터가 /proc/kmsg
및 출력 사이에 무작위로 배포 됩니다 /var/log/kern.log
. dmesg
모든 메시지를 다시 표시합니다.
dmesg
다른 방법과 어떻게 다른가요?- 다른 프로세스가 수신하도록 하여 rsyslog의 커널 로깅을 중단할 수 있는
/dev/kmsg
이유 내 시도가 차단되지 않은 이유는 무엇입니까device or resource busy
? - rsyslog 메시지가
/dev/kmsg
가끔씩 도착하는데도 rsyslog로 전송되지 않는 이유는 무엇입니까proc/kmsg
?
답변1
/proc/kmsg
로그 판독기는 서로 공유할 수 없으며 판독기가 여러 개인 경우 해당 판독기 중 하나만 특정 로그 메시지를 수신합니다. /dev/kmsg
여러 로그 판독기 간에 공유하여 각 판독기에 전체 로그 스트림을 제공할 수 있습니다(느린 판독기의 경우 성능이 저하됨).