首页 > linux死机了怎么办?

linux死机了怎么办?

曾经啊,对着键盘上 Print Screen/SysRq 的键琢磨许久,也不知道所谓 SysRq 到底是做什么用的。自从用了 linux,才算知道是给内核传递信息,紧急情况下重启系统用的。

因为在 windows 的时候,从来没有用到过这个按键,所以我也就一直忽略掉了它的存在。直到有一天一个 flash 视频全屏后,x 崩溃,不要说进 tty 杀 gnome,就是按下 numberlock 都要反应好一会熄灭…… 幸好我有 SysRq 这个终极武器 :) ,顺利重启系统,避免了当前数据的丢失。

当您遇到死机或者没有响应的时候,甚至连 tty 都进不去,可以尝试用 SysRq 重启计算机。

警告:SysRq 不是万金油,不能解决任何疑难杂症。它只是您的最后武器,不到万不得已不可使用!因为一旦使用,系统将重启,当前工作的数据可能丢失!

使用 SysRq 重启计算机的方法:

Alt + SysRq + [R-E-I-S-U-B]

——台式机键盘或者全尺寸键盘

Fn + Alt + SysRq + [R-E-I-S-U-B]

——部分笔记本键盘

解释:括号内的英文字母需要依次顺序按下,而且每次按下字母后需要间隔 5-10s 再执行下一个动作。(如 alter +SysRq + R,间隔10s 后再按 alter+ SysRq +E,以此类推)切记不可快速按下 R-E-I-S-U-B ,否则后果和 扣电池拔电源线无异!

字母顺序的记忆方法很简单,busy — busier — (reverse) — reisub — R-E-I-S-U-B (想来也是 linus 那斯杰作吧,lol)

下面详细讲解一下各个序列:

unRaw – 把键盘设置为 ASCII 模式,使按键可以穿透 x server 捕捉传递给内核

tErminate向除 init 外进程发送 SIGTERM 信号,让其自行结束

kIll - 向除 init 以外所有进程发送 SIGKILL 信号,强制结束进程

Sync – 同步缓冲区数据到硬盘,避免数据丢失

Unmount – 将所有已经挂载的文件系统 重新挂载为只读

reBoot - 立即重启计算机

可以从顺序中看出,它不仅仅是杀掉进程这么简单,而且还有同步数据等操作,所以在每个操作结束前进行下一个操作是非常危险的。所以,R-E-I-S-U-B 这个序列的推荐使用方式是:R – 1 秒 – E – 30 秒 – I – 10 秒 – S – 5 秒 – U – 5 秒 – B,而不是一气呵成地按下这六个键,试想一次正常的 reboot 命令也不是在一瞬间完成的吧。

 

https://www.deleak.com/blog/2010/10/20/sysrq/ 



顺便翻一下其他按键的作用:

0-9 设定终端输出的内核 log 优先级

b 立即重启系统

c 内核live reboot,并输出错误信息

d 显示所有排它锁

e 向除 init 外进程发送 SIGTERM 信号,让其自行结束

f 人为触发 OOM Killer (out of memory)

g 当进入内核模式时,以 framebuttter 代替输出

h 输出帮助

i 向除 init 以外所有进程发送 SIGKILL 信号,强制结束进程

k 结束与当前控制台相关的全部进程

m 内存使用信息

n 重置所有进程的 nice(优先级)

o 关机

p 输出cpu 寄存器信息

q Display all active high-resolution timers and clock sources.

r 把键盘设置为 ASCII 模式,使按键可以穿透 x server 捕捉传递给内核

s 同步缓冲区数据到硬盘

t 输出进程列表

u 重新挂载所有文件系统为只读模式

v 输出 Voyager SMP 处理信息

w 输出 block(d状态)进程列表

组合使用效果更好~

我的尝试:

某次按照顺序执行 r-e-i-s-u-b 时候,忽然想到,既然 i 已经杀死了所有进程,那么僵死进程也必定被 kill 了,只要不是内核挂掉,应该都是可以恢复的。然后尝试进入tty1,成功。遂输入命令欲启动 gnome,成功。但是在 gnome 登陆界面,鼠标键盘均无法使用……

后来想明白了,应该是把 hal,udev 什么的都 kill 掉了,所以 x-server 无法接受输入设备信息,当然无法使用键鼠了……我的尝试也到此为止,希望有人能验证是不是因为 hal ,udev 被 kill而导致 gnome 输入无响应。

参考文献:

linuxtoy

wikipedia

kbd_mode

IBM developerWorks(R)

转载于:https://www.cnblogs.com/kuangxiangjie/archive/2010/11/25/1887192.html

更多相关:

  • 在我们面试过程中,面试官经常会问到这么一个问题,那就是从在浏览器地址栏中输入URL到页面显示,浏览器到底发生了什么?这个问题看起来是老生常谈,但是这个问题回答的好坏,确实可以很好的反映出面试者知识的广度和深度。本文从浏览器角度来告诉你,URL后输入后按回车,浏览器内部究竟发生了什么,读完本文后,你将了解到:浏览器内有哪些进程,这些...

  • 进程与线程进程(process)就是任务,是计算机系统进行资源分配和调度的基本单位[1]。比如,打开一个word文件就是启动了一个word进程。线程(thread)是进程内的子任务。比如word中可以进行编辑、拼写检查和打印等子任务。我们目前的操作系统都是多任务的操作系统,多任务的实现方式[2]:多进程多线程多进程 + 多线程多进程:...

  • 运行cmd netstat -aon|findstr 80 然后 taskkill -f -pid 32428(这个就是pid进程编号) 回车   进程死翘翘了~ 去愉快玩耍吧~哦对了 别忘记一健三联关注我哟~...

  • 首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(ip地址,协议,端口)就可以标识网...

  • 1.      SIGTERM “kill pid” 会发送SIGTERM到进程pid. This is the termination signal sent by killcommand by default. 2.      SIGINT 在终端中敲入interrupt key(DELETE或ctrl+c)会产生SIG...

  • 全卷积网络(FCN) 1.全卷积神经网络介绍 FCN对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的fea...

  • printf()函数优点在于可以格式化输出 格式:   %['padding_character][-][width][.precision]type   所有的转换说明都是以%开始,如果想打印一个%符号,必须用%% ;   参数“'padding_character”是可选,它将被用来填充变量直至所指定的宽度,该参...

  • 给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。 输入格式: 输入在一行中给出一个长度不超过10000的、仅...

  • 给定两个整数A和B,输出从A到B的所有整数以及这些数的和。 输入格式: 输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。 输出格式: 首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。 输入样例:...

  • python面试题目 原文地址:https://www.usblog.cc/blog/post/justzhl/b5cc9a05c7d2 问题一:以下的代码的输出将是什么? 说出你的答案并解释。 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Parent(object):     x...