추가 읽기

추가 읽기

/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여러 로그 판독기 간에 공유하여 각 판독기에 전체 로그 스트림을 제공할 수 있습니다(느린 판독기의 경우 성능이 저하됨).

추가 읽기

관련 정보