klogd/syslogd has stopped flushing output

Evan Lavelle sa212+redhat at cyconix.com
Wed Sep 29 08:56:11 UTC 2010


I'm using printk for driver debug on a remote system (RHEL 5.1); I can 
only connect via ssh. This worked fine until yesterday, when I made some 
minor changes to support a serial terminal (kernel boot messages out to 
ttyS0, and a login on ttyS0). I also briefly changed /etc/syslogd.conf 
to get kernel debug messages out on ttyS0.

The kernel debug messages on ttyS0 didn't give me anything new, so I 
reverted /etc/syslogd.conf to its original state. I've retained the 
login on ttyS0 (respawning agetty on 'co' in /etc/inittab), and the 
bootup message output (console output to ttyS0 in grub.conf).

The problem is that, following these changes, klogd no longer flushes 
its output, so 'printk' is now pretty useless. Any ideas on what may be 
causing this? Here's what I've tried:

1 - 'dmesg' always produces the correct output, but must be run manually

2 - If I cat '/proc/kmsg' in the background then I don't see the printk 
output

3 - If I kill syslogd with a SIGHUP, then all output is flushed to 
/var/log/messages

4 - It doesn't help if kill klogd and run it myself

This is persistent across boots. Any ideas? At the moment I have to 
manually run dmesg whenever I think there may be any output to read.

Thanks -

Evan




More information about the redhat-list mailing list