Esto es además de la muy buena respuesta de Pavan (me enseñó mucho):
Diferente distribución puede redirigir la salida de/proc/kmsg a cualquier archivo de registro físico o dispositivo virtual (/ dev/xxx) que les guste. Pero "/ proc/kmsg" es la fuente original del registro del núcleo, debido a que el núcleo de poner en práctica su funcionamiento búfer de anillo interior de fs/proc/kmsg.c:
static const struct file_operations proc_kmsg_operations = {
.read = kmsg_read,
.poll = kmsg_poll,
.open = kmsg_open,
.release = kmsg_release,
.llseek = generic_file_llseek,
};
Entonces, ¿cómo ves la salida es la siguiente:
sudo tail-f/proc/kmsg
Pero sólo se puede ver todos los mensajes generados DESPUÉS de haber emitido este comando - todos los mensajes anteriores en la memoria cíclica no se imprimen. Y para ver la salida del archivo físico, puede buscar el usuario de "/ proc/kmsg":
sudo lsof | grep proc.kmsg
Y mi máquina indicaron lo siguiente:
rsyslogd 1743 syslog 3r REG 0,3 0 4026532041 /proc/kmsg
in:imuxso 1743 1755 syslog 3r REG 0,3 0 4026532041 /proc/kmsg
in:imklog 1743 1756 syslog 3r REG 0,3 0 4026532041 /proc/kmsg
rs:main 1743 1757 syslog 3r REG 0,3 0 4026532041 /proc/kmsg
Así que ahora es pid 1743, vamos a ver los archivos fd abiertos por 1743:
sudo ls -al/proc/1743/fd
lrwx------ 1 root root 64 Dec 11 08:36 0 -> socket:[14472]
l-wx------ 1 root root 64 Dec 11 08:36 1 -> /var/log/syslog
l-wx------ 1 root root 64 Dec 11 08:36 2 -> /var/log/kern.log
lr-x------ 1 root root 64 Dec 11 08:36 3 -> /proc/kmsg
l-wx------ 1 root root 64 Dec 11 08:36 4 -> /var/log/auth.log
y esto es todo, pid 1743 se rsyslogd, y redirigir la salida de/proc/kmsg de archivos como/var/log/syslog y /var/log/kern.log etc.
¡Increíble! ¡Respuesta muy profesional y útil! Ya ves, soy un recién llegado para la Programación Kernel de Linux, no puedo apreciar más tu ayuda. Gracias hombre. –
Me alegro de poder ayudarte :) ¡Bienvenido a SO! –