dmesg命令

-- TOC --

查看内核printk的打印,清空ringbuffer等操作,最方便的还是dmesg命令!

dmesg is used to examine or control the kernel ring buffer.

The default action is to display all messages from the kernel ring buffer.

内核printk打印的内容是在一个ringbuffer里面,dmesg命令默认会将此ringbuffer中的内容全部显示出来。

全部显示ringbuffer后清空:sudo dmesg -c

直接清空ringbuffer:sudo dmesg -C

打开console显示:sudo dmesg --console-on

关闭console显示:sudo dmesg --console-off

上面两个控制console显示的命令,实际上是在修改log level,默认console是on的,只是log level比较高而已,使用console-on之后,会将log level设置会8,所有log都会显示,使用console-off后,log level会设置为1:

$ sudo dmesg --console-off
$ sysctl kernel.printk
kernel.printk = 1   4   1   3
$ sudo dmesg --console-on
$ sysctl kernel.printk
kernel.printk = 8   4   1   3

-w参数非常有用,这个参数会使得dmesg一直等待新的内核消息,一有新log就马上显示出来,然后继续阻塞等待。dmesg -w

以人类友好的方式显示:dmesg --human,主要变化是时间能够看懂了!

本文链接:https://cs.pynote.net/sf/linux/shell/202112211/

-- EOF --

-- MORE --