当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Linux常见死机原因

Unix/Linux
Linux 备份 恢复方法
Linux玩CS反恐精英的方法
在一个ISO镜像中集成多个不同的linux发行版,可刻盘,可引导
Linux 快捷键使用
Linux DHCP 服务器配置方法介绍
Linux 22端口的修改方法
Linux 记录会话过程的命令
Linux 后台执行程序如何操作?
linux Wget命令来浏览网页的方法
Linux tail命令的巧妙应用
Wine 中文存在很多的乱码怎么解决方法
linux 新手教程之创建锁文件的方法
配置Linux 保证其系统的安全
Linux DHCP协议实现过程
Linux系统下破解SAM密码
linux/unix vi 编辑器用法详解
Linux 误删文件的解决方法
Linux系统下的历史记录删除方法
Red Hat Linux 安全设置指南
Linux基本命令-注销、关机、重启

Unix/Linux 中的 Linux常见死机原因


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 137 ::
收藏到网摘: n/a

在排除了硬件故障/firmware版本/BIOS等等问题之外, Linux死机通常可能碰到如下几种情况

1, 如果你的Linux死机的时候控制台上有乱七八糟的字符。恭喜你,这种情况叫做oops. 通常是Linux kernel认为自己发生了异常造成的。

可以通过oops消息查找出错的地方。

2, 如果你的机器僵死,那么问题麻烦了。这种时候,通常是Kernel出现了死锁。Kernel不会知道自己死锁了,所以不会在屏幕上显示任何咚咚。
如果运气好,此时Kernel也许可能能够响应中断。不管怎样,你都无法进一步操作了。

3, 严格来说,这第三种情况不算死机,现象如下:输入命令回车之后命令不能返回任何结果, 但是控制台对回车可能有相应。但是命令无法结束,也不会有输出结果。
但是可以换到下一个控制台, 而且还可以继续输入命令,但是输入命令之后还是没有输出。这种情况会有很多可能。通常是应用程序的系统调用长时间没有返回或者是满足不了应用的要求。

以上三种情况,system log的作用都不大。通常日志都不会纪录。所以只能使用Kernel的Debug工具。

不过Linus比较狠,人说Kernel不需要Debug工具。所以kernel.org中的代码是没有debug工具的。不过目前绝大多数发行版的kernel都带了debug工具,而且工具都不一样。

通常进行kernel debug都需要在出现故障的时候采集vmcore. 就是把故障发生的时memory dump出来。(还记得Windows 蓝屏的时候会出现1%-100%跳动的一个数字和c盘dump.sys文件, 这回知道干什么的了吧? )  然后进行分析。也许你会担心Linux死机了,还怎么dump memory啊,这个不用担心,Kernel还是留了好几条路子。其中一个是NMI。

那么到底怎么dump memory呢? 这里用REDHAT为例,RHEL3,RHEL4中都使用了netdump作为采集工具,RHEL5使用kdump作为采集工具。

采集完毕就可以对vmcore进行分析,步骤就不细说了。可以参考如下文章:http://people.redhat.com/anderson/crash_whitepaper/

但是对于管理员来说,任何一个debug工具都需要代码开发的经历才能顺利使用。


最后说一句,最近在坛中看到有人看到死机就往应用程序上怀疑。这是很好的自我批评的精神,要大力发扬。

那么,脚本,应用程序会不会导致死机? 当然,但是问题还是出在Kernel上。就比如,应用程序写文件,系统可能会挂起在kernel中的文件系统代码上。