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

Unix/Linux
Linux 防火墙配置基础篇
初手学堂;跟我学习安装配置RedHat9.0
基于FreeBSD操作系统的安全电子邮件系统架设
Linux下增加Apache的rewrite Module
Linux/Unix下ODBC的安装、配置与编程
安装大型Linux 集群: 简介和硬件配置
安装大型Linux 集群: 配置服务和安装
经典推荐:远程网络安装RedHat-Linux
Linux操作系统下软件的安装方法大全
安装Linux应用软件的五种基本方法
Linux下Resin+JSP+MySQL的安装和配置
清爽漂亮 Ubuntu 7.04 新手指南
Linux操作系统下轻型虚拟机VirtualBox
通过PXE远程安装Linux系统全程解析
打造完美linux系统:常用软件安装
IBM P服务器的Linux基本安装和配置
用VNC访问远端Linux桌面 详细步骤解析
Debian4(Etch)系统简要安装详细介绍
RedHat SELinux系统简介及案例分析
Linux系统源码安装过程中的prefix选项

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 59 ::
收藏到网摘: 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中的文件系统代码上。