追加読書

追加読書

/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.logdmesgすべてのメッセージを再表示します。

  • dmesg他の方法とどう違うの?
  • 他のプロセスが受信できるようにしてrsyslogのカーネルロギングを中止できる/dev/kmsg理由私の試みがブロックされていないのはなぜですかdevice or resource busy
  • rsyslogメッセージが/dev/kmsg時々到着してもrsyslogに送信されないのはなぜですかproc/kmsg

ベストアンサー1

/proc/kmsgログリーダーは互いに共有できず、複数のリーダーがある場合は、そのリーダーの1つだけが特定のログメッセージを受け取ります。 /dev/kmsg複数のログリーダー間で共有することで、各リーダーに完全なログストリームを提供できます(遅いリーダーではパフォーマンスが低下します)。

追加読書

おすすめ記事