我们在使用Linux系统的时候会发现系统没有响应出现死机现象。这个时候要做些什么呢?说到这有人就会问,Linux系统会死机么?我可以很肯定地说,会!要让Linux死机很容易,但难的是在死机以后如何安全的让他摆脱死机状态,本文讲述如何从Linux的死机状态中挣脱出来。

Linux系统死机有很多种情况,最常见的是系统负载过高导致的。如上次介绍的fork***就是这个原理,此外还可以运行内存耗用极大的程序(如虚拟机),也会迅速提升系统负载。由于系统负载过高导致的卡死,一定是解决的越快越好!此时必须记住的是,不能再试图依赖任何图形界面的东西,如 Gnome 的系统监视器(这是我从 Windows 遗留下来的愚昧习惯……),这只会继续加重这种卡死的局面。那怎么办?

不要怕,Linux系统最初就是不需要图形界面的,因为有一个很强大的文字界面。按 Ctrl-Alt-F1(F1-F6 一般来说都可以),然后等一会儿,就会切换到 tty,也就是所谓的文字界面。这个时候需要用用户名密码登入。注意,可能键盘输入的速度比较慢,不过应该还是可以忍受的。下面在提示符后面输入 top 回车,这时会看到一张动态的表,上面列出了耗用资源最多的进程。观察它刷新一两次,按q退出,然后输入 kill ,其中的 PID 你可以在 top 里面看到。这个时候应该会快了不少,如果你发现没有成功结束掉,就再输入 kill -KILL ,这次基本上就没问题了。

除了上面这种情况外,一些底层软件的 bug 也可能导致一些奇怪的死机问题。我某位同学近日就因为莫名其妙的死机强制重启把 ext4 的分区给伤了。(最后是 sysreccd 修复了,貌似是分区表部分损坏)据其说,死机是键鼠均无反应。一般来说,系统负载高导致的死机,在可怕键盘也会有反应,有人说如果死机到键盘无响应“负载 都无限大了”,亦有人说这可能是 X Server 与驱动配合有问题导致的。不过我们考虑一下遇到这种情况怎么办?

OK,这是今天才学到的方法,叫做 reisub,这个方法可以在各种情况下安全地重启计算机。大家在键盘上找,可以找到一个叫做“Sys Rq”的键,在台机的键盘上通常与 Prt Sc 共键,在笔记本可能在其他位置,如 Delete。以台机为例,要使用这种方法需要按住 Alt-Print(Sys Rq),然后依次按下 reisub 这几个键,按完 b 系统就会重启。

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

R:unRaw 将键盘控制从 X Server 那里抢回来

E:tErminate 给所有进程发送 SIGTERM 信号,让他们自己解决善后

I:kIll 给所有进程发送 SIGKILL 信号,强制他们马上关闭

S:Sync 将所有数据同步至磁盘

U:Unmount 将所有分区挂载为只读模式

B:reBoot 重启

这6个字母的顺序是不可以记错的。那怎么记呢?这里提供一个个人认为比较好的方法:单词 busier(busy 的比较级,更忙)倒过来就是了。

死机?不合适吧。真死机了除了hard reset还能干什么?叫失去响应或者无响应更合适吧?

另外服务器一般都是远程操作的,sysrq怎么用呢?

X挂掉,通常psuedo console就能搞定。通常大家也会开ssh,绝大多数情况下都能连上去杀进程,做重启前的收尾比如sync来commit。

关于sysrq,通常RHEL/OEL等EnterpriseLinux系统默认都是关闭的需要事先开启才可以用。

什么是SysRq"魔术组合键"?

根据Linux内核文档介绍:

这是一组\'魔术组合键\',只要内核没有被完全锁住,不管内核在做什么事情,使用这些组合键可以立即打印出内核的信息。

使用sysrq组合键是了解系统目前运行情况的最好方式。如果系统出现挂起的情况或者在诊断一些和内核相关,比较怪异,比较难重现的问题的时候,使用sysrq键是一个比较好的方式。

如何打开和关闭SysRq组合键?

为了安全起见,在红帽企业版Linux里面,默认SysRq组合键是关闭的。 打开这个功能,运行:

# echo 1 > /proc/sys/kernel/sysrq

关闭这个功能:

# echo 0 > /proc/sys/kernel/sysrq

如果想让此功能一直生效,在/etc/sysctl.conf里面设置kernel.sysrq的值为1. 重新启动以后,此功能将会自动 打开。

kernel.sysrq = 1

因为打开sysrq键的功能以后,有终端访问权限的用户将会拥有一些特殊的功能。因此,除非是要调试,解决问题,一般情况下,不要打开此功能。如果一定要打开,请确保您的终端访问的安全性。

如何触发一个sysrq事件?

有几种方式可以触发sysrq事件。在带有AT键盘的一般系统上,在终端上输入一下组合键:

AltPrintScreen[CommandKey]

例如,要让内核导出内存信息(CommandKey "m"),您应该同时按下Alt 和 Print Screen 键,然后按下 m 键. 提示: 此组合键在Xwindows上是无法使用的。所以,您先要切换到文本虚拟终端下。如果您现在是在图形界面, 可以按CtrlAltF1切换到虚拟终端。

在串口终端上,要想获得同样的效果,需要先在终端上发送Break信号,然后在5秒内输入sysrq组合键。

如果您在机器上有root权限,您可以把commandkey字符写入到/proc/sysrq-trigger文件。这可以帮助您通过脚本或者您不在系统终端上的时候触发sysrq事件。

# echo \'m\' > /proc/sysrq-trigger

当我触发一个sysrq事件的时候,接过保存在什么地方?

当一个sysrq命令被触发,内核将会打印信息到内核的环形缓冲并输出到系统控制台。此信息一般也会通过syslog输出到/var/log/messages.

有时候,可能系统已经无法响应,syslogd可能无法记录此信息。在这种情况下,建议您配置一个串口终端来收集这个信息。

那些类型的sysrq事件可以被触发?

sysrq功能被打开后,有几种sysrq事件可以被触发。不同的内核版本可能会有些不同。但有一些是共用的:

m - 导出关于内存分配的信息

t - 导出线程状态信息

p - 到处当前CPU寄存器信息和标志位的信息

c - 故意让系统崩溃(在使用netdump或者diskdump的时候有用)

s - 立即同步所有挂载的文件系统

u - 立即重新挂载所有的文件系统为只读

b - 立即重新启动系统

o - 立即关机(如果机器配置并支持此项功能)

linux串口导致死机,Linux系统死机情况分析与处理方案介绍相关推荐

  1. Linux拷贝数据死机了,Linux系统“死机”时怎么办?

    如果问题能够再现,那么问题已经解决 80% 了.对于操作系统核心而言,如果有问题的再现方法,那么可以说是已经解决 99% 了.经常遇到的问题是系统可以正常运行一段时间,然后死机.如果不好再现问题,那么 ...

  2. linux进程假死的原因_Linux系统死机的原因及解决办法

    系统出现死机,一般分为两种情况:一是硬件问题;二是软件问题. 一.硬件问题 可以考虑分析以下几点: 1.不要超频CPU,如果已经超频的先回复到原来的频率 虽然平时运行没有问题,但可能在高负载的使用中就 ...

  3. ubuntu16.04系统死机,鼠标可移动,但点击无反应,键盘无反应,解决办法总结

    ubuntu16.04系统死机,鼠标可移动,但点击无反应,键盘无反应,解决办法总结 Ubuntu16.04下这两天频繁死机,情况是鼠标可移动,但点击没反应,键盘按键也没反应,不想强制重启关机,毕竟可能 ...

  4. RK3399 Android7.1 ACOVP导致系统死机

    现象:低温-40度插着适配器(适配器放低温箱内),机器亮屏连续工作一小时左右出现死机现象(屏不亮,短按电源按键无法开机,需强制关机后才能开机). 部分死机log: [    4.141791] [dr ...

  5. 新win7系统死机,打开驱动精灵就卡住,解决方案 安装戴尔DELL Optilex 7040 USB驱动时提示无法定位程序输入点 kernel32.dll,解决方案

    新win7系统死机,打开驱动精灵就卡住,解决方案 安装戴尔DELL Optilex 7040 USB驱动时提示无法定位程序输入点 kernel32.dll,解决方案 原因: 新系统打卡驱动精灵卡死其实 ...

  6. Ubuntu18.04安装死机,开机死机,关机死机 惠普

    由于项目需要,我需要在ns2上进行一些程序的运行和开发.实验室给买了一台新电脑,惠普zhan99G1系列,4G独显. 想要在该新电脑上安装Ubuntu18.04以便于以后的学习的工作. 先用U盘做了一 ...

  7. 真·0秒死机(瞬间死机)

    大家可能知道许多中死机的方式,如%0|%0.fork炸弹.压缩炸弹.OpenGL占用GPU等等. 然而,这几种方式都有一个共同点:把硬件资源占满,让系统无法使用这些资源,从而死机.但是,这样有几种缺点 ...

  8. 笔记本电脑计算机出现问题怎么办,笔记本电脑经常死机怎么办 笔记本电脑死机原因分析...

    笔记本电脑经常死机 笔记本电脑死机原因分析: 笔记本电脑重启和死机故障现象是电脑维修过程中的经常出现问题,涉及的原因也是多方面的.经验告诉我笔记本电脑的重启.死机故障现象和机型牌子有一定的关系,一般要 ...

  9. 笔记本电脑死机 笔记本老是死机 蓝屏死机

    笔记本电脑死机 笔记本老是死机 蓝屏死机 2010年08月12日 [b] 第一种 系统问题[/b] 操作系统对于整个电脑使用来说是至关重要的,而系统问题导致出现的蓝屏,一般是系统文件损坏,或者是启动文 ...

  10. 计算机的相关配置信息,win7系统查看电脑配置相关信息的方案介绍

    win7系统使用久了,好多网友反馈说win7系统查看电脑配置相关信息的问题,非常不方便.有什么办法可以永久解决win7系统查看电脑配置相关信息的问题,面对win7系统查看电脑配置相关信息的图文步骤非常 ...

最新文章

  1. mysql帐号,权限管理
  2. android:listView Button 焦点问题
  3. 机器学习之类别性特征
  4. 密码找回功能可能存在的问题
  5. 数据挖掘之关联算法Apriori
  6. C++Kosaraju找有向图的强连通分量算法(附完整源码)
  7. Ubuntu 建立tftp服务器
  8. 电脑屏保海底世界_水下栖息地:人类能否在海洋中居住?真的有人住在海底吗?...
  9. 【免费公测中】为数据赋予超能力,阿里云重磅推出Serverless数据分析引擎-Data Lake Analytics
  10. 解决方案大全ImportError: libta_lib.so.0: cannot open shared object file: No such file or directory
  11. ASCII, GB2312, GBK, Unicode, UTF8之间的区别和联系
  12. selenium java api_selenium_java常用API操作
  13. 撞库***:一场需要用户参与的持久战
  14. Windows系统中搭建Python编译环境
  15. 解决DEFINE_string(result_path, result, Path for results) NameError:name 'os' is not defined
  16. STL---字符串使用方法
  17. 解决FireFox(火狐浏览器)占用资…
  18. 从论文pdf中复制粘贴文字时,空格变成回车的解决方法
  19. 软考中级软件设计师学习资料分享
  20. Kotlin | Kotlin教程

热门文章

  1. 百度快照多久更新一次?
  2. 陕西师范大学远程教育学院计算机应用基础,陕西师范大学远程教育学院计算机应用基础机考备考试题.doc...
  3. 2013年计算机考试题库,2013年计算机三级数据库上机冲刺试题一及答案
  4. linux 下如何给火狐安装flash插件(常用命令cd cp tar 实践)
  5. nyoj1052 看美女2
  6. 两坐标点的直线距离c语言,c语言求平面上2个坐标点的直线距离、求俩坐标直线距离作为半径的圆的面积、递归、菲波那次数列、explode...
  7. free mybatis 不生效_Mybatis非空判断没有生效
  8. Pytorch之模型加载/保存
  9. java技术架构选型方案报告.pdf,来啦,2020开源报告!
  10. android spinner控件详解,GitHub - LonelyPluto/TestSpinner: android控件——Spinner下拉框详解及使用...