È rsyslogsolo uno strato di astrazione in cima al buffer dell'anello del kernel? O il kernel ring buffer è la sua entità e l' rsysloginterazione è simile a quella di qualsiasi altra "applicazione"?
È rsyslogsolo uno strato di astrazione in cima al buffer dell'anello del kernel? O il kernel ring buffer è la sua entità e l' rsysloginterazione è simile a quella di qualsiasi altra "applicazione"?
Risposte:
Sebbene vari documenti (incluso man dmesg) si riferiscano ad esso come "buffer del kernel ring", potrebbe essere meglio fare riferimento ad esso come buffer del log del kernel, poiché "buffer dell'anello" è un termine generico e credo che il kernel usi anche l'anello buffer per varie cose completamente non correlate. Anche il "buffer printk" è appropriato, dopo che la funzione dello spazio del kernel è stata utilizzata per scrivere su di esso.
Ad ogni modo, risiede nello spazio del kernel e un'interfaccia di lettura viene fornita tramite /proc/kmsge un'interfaccia di lettura-scrittura tramite /dev/kmsg. Quindi se come root vai:
echo "Hello Kernel!" > /dev/ksmg
Lo vedrai se poi cat /dev/ksmg(probabilmente non lo vedrai apparire in alcun registro, comunque - vedi il commento di Matthew Phipps sotto per un possibile motivo). Questo è un output non elaborato e non assomiglia esattamente alle cose che vedi dmesgo dai tuoi file di registro. C'è un po 'di documentazione su questo fornita con il sorgente del kernel. Si consiglia di leggere da /proc/kmsg(non uguale a /dev/ksmg) se (r) syslog è in esecuzione.
Rsyslog è una delle numerose implementazioni di syslog comunemente usate su Linux. Queste sono applicazioni userland che generano messaggi kernel /proc/ksmge messaggi da altri processi userland tramite un socket /dev/log.