0

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

4

1 回答 1

0

不,这是不可能的。正如对 Oops is not kernel panic 问题的评论中提到的那样,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

于 2014-03-06T09:45:20.367 回答