在内核恐慌之后,系统可能会保持活力吗?

时间:2014-03-05 10:05:15

标签: linux linux-kernel panic

昨天,在运行我的应用程序时,我在控制台syslog广播中看到,这看起来像内核恐慌并且控制台变得无法响应。今天,我注意到我可以使用putty连接到服务器,当我运行uptime时显示系统已启动几天。当我运行dmesg时,我看到oom_killer日志和Oops日志,但我预计我会看到系统重新启动,dmesg清除内核恐慌的任何痕迹。所以现在我很困惑,是否有内核恐慌?如果是,那么为什么我可以连接到服务器,而系统似乎没有重新启动(它已经持续了几天)。如果不是,那我怎么能连接到服务器呢?在手动重启服务器之前,服务器是否应该被冻结?

1 个答案:

答案 0 :(得分:0)

不,这是不可能的。正如对问题的评论中所提到的,Oops不是内核恐慌,oom杀手杀死了内存耗尽的进程,因为这个进程绕过内核网络堆栈(以自己的方式实现它)我得到了oom日志。令我感到困惑的是,如果我用

制作一个测试程序
int * p = new int[(unsigned int)-1];

我会得到std::bad_alloc而不是oom杀手。您可以在此处找到更多信息:

http://bl0rg.krunch.be/oom-frag.html

https://unix.stackexchange.com/questions/1660/what-is-a-kernel-panic