Befindet sich rsyslog
nur eine Abstraktionsschicht über dem Kernel-Ringpuffer? Oder ist der Kernel-Ringpuffer eine eigene Entität und die rsyslog
Interaktion ist wie bei jeder anderen "Anwendung"?
Befindet sich rsyslog
nur eine Abstraktionsschicht über dem Kernel-Ringpuffer? Oder ist der Kernel-Ringpuffer eine eigene Entität und die rsyslog
Interaktion ist wie bei jeder anderen "Anwendung"?
Antworten:
Obwohl verschiedene Dokumentationen (einschließlich man dmesg
) es als "Kernel-Ringpuffer" bezeichnen, ist es möglicherweise besser, es als Kernel-Protokollpuffer zu bezeichnen, da "Ringpuffer" ein Oberbegriff ist und ich glaube, dass der Kernel auch Ring verwendet Puffer für verschiedene völlig unabhängige Dinge. Der "printk-Puffer" ist auch nach der Kernel-Space-Funktion geeignet, mit der in ihn geschrieben wurde.
Auf jeden Fall befindet es sich im Kernelraum und eine Leseschnittstelle wird über /proc/kmsg
und eine Lese- / Schreibschnittstelle über bereitgestellt /dev/kmsg
. Also, wenn Sie als Wurzel gehen:
echo "Hello Kernel!" > /dev/ksmg
Sie werden es sehen, wenn Sie es dann tun cat /dev/ksmg
(Sie werden dies jedoch wahrscheinlich in keinem Protokoll sehen - siehe Matthew Phipps 'Kommentar unten für einen möglichen Grund). Dies ist eine Rohausgabe und sieht nicht genau so aus, wie Sie es in dmesg
oder in Ihren Protokolldateien sehen. Es gibt eine kleine Dokumentation dazu, die mit der Kernelquelle geliefert wird. Das Lesen von /proc/kmsg
(nicht dasselbe wie /dev/ksmg
) wird empfohlen, wenn (r) syslog ausgeführt wird.
Rsyslog ist eine von mehreren Syslog- Implementierungen, die häufig unter Linux verwendet werden. Hierbei handelt es sich um Userland-Anwendungen, die Kernel-Nachrichten von /proc/ksmg
und Nachrichten von anderen Userland-Prozessen über einen Socket beziehen /dev/log
.