Linux死机解决办法

http://www.openswc.com/forum.php?mod=viewthread&tid=408


不建议长按 Power 按键强制关机,有可能损坏硬件或者丢失数据,甚至导致磁盘坏道!

通常套路是 Ctrl + Alt +F7 (F8) 切换到某个 tty,然后用 root 登陆,执行 top 查看吃资源最多的程序,然后使用 pkill/kill/killall 等命令杀死该程序。或使用组合键 Ctrl + Alt + Backspace重启 X (黑日白月注:这个快捷键组合在最新的 Ubuntu 和 Fedora 中关闭)。

如果偶遇切换 tty 失败或者没响应,可以试着使用 SSH 登陆此电脑,然后再杀死程序。也许只是 X 不响应,而内核和 SSH daemon 仍然工作,故此可以实施此法。

如果是在图形界面下死机的话,不要再依赖任何图形界面的工具,那样只会适得其反,可以先试试文字界面,按ctrl+alt+f2(F1-F6一般都可以),会切换到另外一个虚拟终端,需要一个账号来登入,这时键盘响应可能非常慢,但是是可以响应的,进入后打top命令看一下进程,等这个表刷那么一两次,就可以确定占用资源比较大的进程了,把它kill掉,这样可以解决相当一部分问题。


但是有的时候是比较底层的软件出现问题,那这个方法就不适用了,但是这就引出了这篇文章要说的强强的方法。reisub方法,说具体一点,是一种系统请求,直接交给内核处理。键盘上一般都有一个键,SysRq,和PrintScreen在一个键位上,这就是系统请求的键。这个方法可以在死机的情况下安全的重启计算机,数据不会丢失。


具体操作是,按住Alt+SysRq,再依次按下reisub几个键,按完b系统就会重启。


下面解释一下这个方法:其实 Sys Rq 是一种叫做系统请求的东西,按住 Alt-Print 的时候就相当于按住了 Sys Rq 键,这个时候输入的一切都会直接由 Linux 内核来处理,它可以进行许多低级操作。这个时候 reisub 中的每一个字母都是一个独立操作,他们分别表示:


unRaw 将键盘控制从 X Server 那里抢回来
tErminate 给所有进程发送 SIGTERM 信号,让他们自己解决善后
kIll 给所有进程发送 SIGKILL 信号,强制他们马上关闭
Sync 将所有数据同步至磁盘
Unmount 将所有分区挂载为只读模式
reBoot 重启

这里有个问题要注意一下,最好不要快速连续地按下这几个键,要有间隔,大概是估计每个间隔10秒左右,因为每一步操作都需要时间,而且s键之后因为同步数据比较慢,可以停20秒。

魔法键reisub究竟该怎么用?
如果某一天你的 Linux 死机了,键盘不听使唤了,Ctrl+Alt+F1 已经没有任何反应,该怎么办呢?想必你一定听说过“魔法键”:Alt+SysRq+r,e,i,s,u,b(确实很好背,就是单词 busier 的倒写)。好的,平时电脑那么正常,你自然也不会去按这些按钮。等到真的出事的时候,你把记在小纸条上的这些 tips 拿出来,然后在键盘上按,结果发现啥反应也没有,于是只能欲哭无泪了……


      问题在于:究竟该怎么按这些按钮才会有效?
      首先,你的系统要支持这个功能,查看和开启的方法大家应该很熟悉了,网上也有很多说明,而且最幸运的是:Ubuntu 默认已经开启了这个功能。
      接下来就是操作:马上你就会发现,同时按下<Alt>+<SysRq>压根儿行不通!只会蹦出来一个屏幕截图窗口。所以,真正的做法应该是:
(1)伸出你的左手,同时按住<Ctrl>+<Alt>键,别松开
(2)右手先按一下<SysRq>,左手别松开,等1秒
(3)右手按一下 R,左手别松开,等1秒
(4)右手按一下 E,左手别松开。这时包括桌面在内,所有程序都会终止,你会看到一个黑乎乎的屏幕,稍微等一段时间
(5)右手依次按下 I,S,U,B,左手别松开。每按一次都等那么几秒种,你会发现每按一次,屏幕上信息都会有所变化。最后按下B时,屏幕显示 reset,这时你的左手可以松开了,等几秒钟,计算机就会安全重启。
      这是我亲自尝试的过程。


在 Ubuntu 7.10(够古董)的 wiki 上曾经有说明,可惜居然无人关注。
http://wiki.ubuntu.org.cn/Ubuntu:Gutsy/zh
Ubuntu"死机“时怎么办
有无数种原因可能导致系统崩溃,可能是程序的bug,可能是内存管理的问题,或者其它任何原因。当你的计算机停止响应时,不要总想着去按“电源”键关机!在你强行关掉电源前试试以下几种简单的方法:
    计算机停止响应了吗?先试着按<Ctrl><Alt>和<F1>键来进入虚拟终端。这样计算机仍在你掌控中,你可以停掉导致系统无响应的程序。
    如果你不能进入虚拟终端,再试试重启图形界面吧,方法是<Ctrl><Alt><backspace>。所有在这个图形界面中打开的应用程序都将被关闭,登录界面出现,你可以重获系统控制权。
    如果前面两个都失败了,我们重启吧。最安全的做法就是按<Ctrl><Alt><Delete>。电脑将运行关机脚本,安全重启。
    如果由于关机脚本的问题导致方法3失败,那么就重新按下3中所说那三个键。当然这样是不安全的,因为系统可能不会unmount掉文件系统。
    必杀技:如果试了以上方法都无效,有一条小秘决,别人我不告诉他。其实系统核心有一条小小的用户空间通信管道保持畅通,在你的核心崩溃时(这个方法我还没试过,谁去试试?)你可以通过以下方法安全重启。这个方法是安全的,但切记只有所有尝试失败後再这样做!按下<Ctrl><Alt>和<PrtScrn/SysRq>键,别放开,然後输入以下字母(确保按顺序)REISUB。系统会unmount掉mount的所有本地文件系统,安全关机。什么?这个字母序列很难忘?把它倒过来读读“busier"。

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值