Linux Kernel – Disable Console Output When Console=null Doesn’t Work

bootcommand lineconsolelinux-kernel

as mentioned above, I want to to completely turn off the console output, but putting console= or console=null in the kernel command line doesn't change a thing. When I enque quiet to the kernel command line it approximates this job, but I want to completely turn off the output.

So why is console=null not working, there isn't even an error message?

Best Answer

1. Using dmesg

One method would be to do so using dmesg:

   -n, --console-level level
          Set the level at which logging of messages is done to the console.  
          The level is a level number or abbreviation of the  level  name.
          For all supported levels see dmesg --help output.

For example:

$ sudo dmesg -n0

2. Using rsyslog

Another method would be through rsyslog. The config file /etc/rsyslog.conf:

#kern.*                                                 /dev/console

Changing this line to this:

kern.*                                                 /dev/null

NOTE: A restart of rsyslog is necessary, sudo service rsyslog restart.

3. Using sysctl

Lastly you can control this at the kernel level via sysctl.

I suggest you alter your /etc/sysctl.conf. Specifically, you want to tweak the kernel.printk line.

# Uncomment the following to stop low-level messages on console
kernel.printk = 3 4 1 3

You can see your current settings:

$ sudo sysctl -a|grep "kernel.printk\b"
kernel.printk = 4   4   1   7

4. Using silent

If you truly want to disable all logging, even during boot then change the string quiet to silent in the boot arguments to the kernel in GRUB, in /boot/grub2/grub.cfg.

linux   /vmlinuz-3.12.11-201.fc19.x86_64 ... rhgb silent ....
Related Question