rsyslog
カーネルリングバッファの上に抽象化レイヤだけがありますか?それとも、カーネルリングバッファはそれ自体のエンティティであり、rsyslog
他の「アプリケーション」のように対話しますか?
答え1
さまざまなドキュメント(参照を含むman dmesg
)ではこれを「カーネルリングバッファ」と呼びますが、「リングバッファ」は一般的な用語であり、カーネルもリングバッファを使用すると考えているので、カーネルログバッファと呼ぶ方が良いです。完全に関連していないすべての種類の項目のバッファー。カーネル空間関数を使用して書き込みを行った後、「printk バッファ」も適しています。
それにもかかわらず、読み取りインターフェース/proc/kmsg
と読み取りおよび書き込みインターフェースを提供してカーネルスペースに常駐します/dev/kmsg
。したがって、ルートに移動する場合:
echo "Hello Kernel!" > /dev/ksmg
これを行うと、その内容が表示されますcat /dev/ksmg
(ただし、どのログにもこの内容が表示されない可能性があります。考えられる理由については、以下のMatthew Phippsの説明を参照してください)。これは生出力であり、dmesg
ログファイルに表示されるものとまったく一致しません。少し一部の文書これにはカーネルソースコードが付属しています。 (r)syslogが実行されている場合は/proc/kmsg
(他の)読み取りをお勧めします。/dev/ksmg
Rsyslogは多くのログの一つです。システムログLinux で一般的に使用される実装です。これは/proc/ksmg
、ソケットを介してカーネルメッセージや他のユーザースペースプロセスからメッセージを取得するユーザースペースアプリケーションです/dev/log
。