Há rsyslog
apenas uma camada de abstração em cima do buffer de anel do kernel? Ou o buffer do anel do kernel é sua própria entidade e rsyslog
a interação é como a de qualquer outro "aplicativo"?
Embora várias partes da documentação (inclusive man dmesg
) se refiram a ele como "o buffer de anel do kernel", pode ser melhor chamá-lo como o buffer de log do kernel, pois "buffer do anel" é um termo genérico e acredito que o kernel também usa o anel buffers para várias coisas completamente não relacionadas. O "buffer de impressão" também é apropriado, após a função de espaço do kernel usada para gravar nele.
De qualquer forma, ele reside no espaço do kernel e uma interface de leitura é fornecida via /proc/kmsg
e uma interface de leitura e gravação via /dev/kmsg
. Portanto, se como root você for:
echo "Hello Kernel!" > /dev/ksmg
No entanto, você verá isso cat /dev/ksmg
(você provavelmente não verá isso aparecer em nenhum registro) - veja o comentário de Matthew Phipps abaixo por um possível motivo). Essa é uma saída bruta e não se parece exatamente com as coisas que você vê dos dmesg
ou nos seus arquivos de log. Há um pouco de documentação sobre isso fornecida com a fonte do kernel. A leitura de /proc/kmsg
(não o mesmo que /dev/ksmg
) é recomendada contra se (r) syslog estiver em execução.
Rsyslog é uma das várias implementações de syslog comumente usadas no linux. Esses são aplicativos da terra do usuário que originam mensagens do kernel /proc/ksmg
e mensagens de outros processos da terra do usuário por meio de um soquete /dev/log
.