问题描述
我不知道它是否与 SO 有关,但是我知道当我使用Linux内核panic
函数时,工作是冻结我的系统,但是需要 1 参数,一个 message ,如果我的系统完全冻结,我可以通过握住电源来强制关闭PC,在哪里可以真正看到 message 。关闭按钮?
main.c
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h> // panic
MODULE_LICENSE("GPL");
static int __init initialization_function(void)
{
panic("Module: my message!\n");
return 0;
}
static void __exit cleanup_funcion(void)
{
printk(KERN_INFO "Module: Cleanup done,exiting.\n");
}
module_init(initialization_function);
module_exit(cleanup_funcion);
顺便说一句,我不知道如何看到实际的 oops 消息,在哪里以及如何看到它?
解决方法
它转到内核控制台,与printk()
消息所在的位置相同。 Wikipedia article on kernel panic中有一个屏幕截图:
通常,如果在启动时发生内核崩溃,您将能够看到它。
关于如果您有一个正在运行的桌面系统会发生什么,不幸的是,我不记得了。您可能看不到它,否则X / Wayland服务器将崩溃并在控制台中看到该消息。
,您已经注意到自己,这很棘手,因为系统被冻结了。您可以做的是在重新启动后查看系统日志。确切的实现方式取决于分布。在具有systemd
的系统上,您可以使用journalctl -xe
。