Linux – Hiding linux kernel messages from console

consoledebianlinuxlogging

I have a machine running a custom build of Linux kernel 3.2.12-rt based on Debian Squeeze.

I'm getting kernel messages printed to the console. I don't want it to do that. I know why it's doing that:

# cat /proc/sys/kernel/printk
8     4     1     3

But I don't know how that first value is getting set to 8, and I want whatever is doing it to stop.

I've looked in the kernel config; it has CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 and no built-in command line.

I've looked in the boot command line; it has quiet. I've tried changing it to quiet loglevel=4, but this hasn't helped.

/etc/sysctl.conf has kernel.printk = 3 4 1 3 (and it's not commented out).

I tried grepping for anything else that might have set printk, but I couldn't find anything useful. (That may just mean that I didn't look in the right places or for the right things though.)

$ grep console /etc/rsyslog.conf
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
# The named pipe /dev/xconsole is for the `xconsole' utility.  To use it,
# you must invoke `xconsole' with the `-file' option:
#    $ xconsole -file /dev/xconsole [...]
         *.notice;*.warn       |/dev/xconsole

Where else can I look? (Granted, I could probably rewrite /proc/sys/kernel/printk in some boot script, but there has to be a better way.)

Best Answer

I found the problem. /etc/rc.local had the following line:

dmesg -n 8

Removing this returned logging to normal.