Linux死机解决办法

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
清徽
帖子: 12
注册时间: 2006-05-05 20:47

Linux死机解决办法

#1

帖子 清徽 » 2014-05-10 17:46

办法1

1、尝试按Ctrl +Alt + F1(F1-F6 通常都可以),过一会后就会切换到 tty这个文字界面。输入用户名和密码登入系统。(可能这时候键盘输入都会比较慢,不要着急)

2、用top命令,查看占用资源最多的进程,top默认是以CPU占用率来排序的,从高到低。在第一行的,就是当前占用CPU最多的进程

3、这时候可以按键盘上的k键,(意思是发出kil命令),这时候top程序会提示你输入相应的PID号(相应的数字),再按Enter键。如果你不输入相应的号码,只按Enter键的话,那么就是选择默认的那进程(默认的进程就是你在按K键时,占用CPU资源最高的那个)。如果你只是试验一下,压根不想结束任何进程,那么就输个字母进去,再按Enter键,就不会结束任何进程。

4、接下来,top就会问你给一个什么信号来结束这个进程,默认是信号15,也就是正常结束,如果无法正常结束,你可以尝试使用信号9,来强行结束。

办法2 (有的linux版本可能无法使用这个功能,最后有开启这个功能的说明)

如果前一个办法无法解决问题的时候,那么只能使用那个具有魔法般的神奇按键了!

SysRq键

在标准的键盘上,SysRq键是和PrtScr键在一起的,那个键上面一行是写着PrtScr(也有可能写成PrtSc),下面一行是SysRq。

这个键在F12键的右边,Scroll Lock键的左边。

找到它后,这样操作。按住 Alt + SysRq这两个按键,别松手!(有些笔记本键盘,你还要多按一个Fn键,估计你要长四只手才够用,我想起那个弹钢琴的人是用了鼻子,你可以试一试双脚!^L^)

然后按R键,推荐按下此键等1秒,再按后续的按键

再是按E键,推荐按下此键等 30秒,再按后续的按键

再是按I键,推荐按下此键等10秒,再按后续的按键

再是按S键,推荐按下此键等10秒 ,再按后续的按键

再是按U键,推荐按下此键等10秒,再按后续的按键

最后就是按B键。

电脑就会正常重启了!

千万不要快速按下 R-E-I-S-U-B这些键,那和按机箱上的重启键没分别!

字母顺序是 R-E-I-S-U-B

记忆办法是busy的比较级busier,忙到都要倒过来了,也就是reisub

下面列出各个按键的含义,以及示例输出

R - 把键盘设置为 ASCII 模式

屏幕上显示
SysRq: Keyboard mode set to XLATE

E - 向除 init 以外所有进程发送 SIGTERM 信号(也就是办法1中说的信号15)

屏幕上显示
SysRq: Terminate All Tasks

I - 向除 init 以外所有进程发送 SIGKILL 信号(也就是办法1中说的信号9)

屏幕上显示
SysRq: Kill All Tasks

S - 磁盘缓冲区同步

屏幕上显示
SysRq : Emergency Sync
Emergency Sync complete

该操作会把磁盘缓冲区的数据回写,以防止数据丢失,通常会有一定延时。在能看到输出的情况下,请等到 ” Emergency Sync complete ” 过后再继续后续操作。否则,等十秒钟左右,再进行后续 SysRq 操作。

U - 重新挂载为只读模式

屏幕上显示
SysRq : Emergency Remount R/O
Emergency Remount complete

该操作会把磁盘重挂载为只读模式,以防止数据的损坏。与 S 类似,该操作通常也有一定延时。请等到 ” Emergency Remount complete ” 出现过后再进行后续操作,或者等候十秒钟再进行后续 SysRq 操作。

B - 立即重启系统
SysRq: Resetting

以下是其他一些按键的说明

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状态)进程列表

只要是linux 2.2.X或以上的内核,全是支持这个功能的。但是有些linux系统没有开启

检查办法如下,在ROOT权限下,用以下命令查看

# cat /proc/sys/kernel/sysrq

如果显示是0,那么就是没开启。

如果显示是1,那么就是开启了。

当然还有可能是其他数值,比如说我的ubuntu就是176这个数值。意思就是下面这值相加176= 128 + 32 +16

0 - disable SysRq
1 - enable SysRq completely
>1 - bitmask of enabled SysRq functions:
2 - control of console logging level
4 - control of keyboard (SAK, unraw)
8 - debugging dumps of processes etc.
16 - sync command
32 - remount read-only
64 - signalling of processes (term, kill, oom-kill)
128 - reboot/poweroff
256 - nicing of all RT tasks

如果你不是1,那么如何开启呢?

在ROOT权限下,使用这个命令

# echo 1 | sudo tee /proc/sys/kernel/sysrq

但是只要你重启了,这个就没了。所以要一直保持有这个功能的话,你需要这样操作。

在ROOT权限下,编辑/etc/sysctl.conf这个文件

# sudo less /etc/sysctl.conf

在最后面增加一行

kernel.sysrq = 1


参考资料如下

Linux死机怎么办?--关于 SysRq键


Linux 死机了怎么办


利用 SysRq 键排除和诊断系统故障


SysRq 内核文档

SysRq 维基百科


Alt+Print+k doesn't work anymore
ipposis
帖子: 333
注册时间: 2013-12-23 13:42

Re: Linux死机解决办法

#2

帖子 ipposis » 2014-05-10 18:14

按reisub还要等几秒的么?

debian系统按reisub不重启,直接关机倒是可以,好奇你们的怎么都是重启的
头像
ahwad
帖子: 1113
注册时间: 2009-05-06 0:36

Re: Linux死机解决办法

#3

帖子 ahwad » 2014-05-10 18:17

死都死了,ctrl alt Fx 都没用,你列举的都没用吧。。。。。。。
清徽
帖子: 12
注册时间: 2006-05-05 20:47

Re: Linux死机解决办法

#4

帖子 清徽 » 2014-05-10 19:27

ahwad 写了:死都死了,ctrl alt Fx 都没用,你列举的都没用吧。。。。。。。
看方法2

如果你开启了内核的sysrq,就算无法切换到tty,也是能比较安全的解决死机问题的。
清徽
帖子: 12
注册时间: 2006-05-05 20:47

Re: Linux死机解决办法

#5

帖子 清徽 » 2014-05-10 19:33

ipposis 写了:按reisub还要等几秒的么?

debian系统按reisub不重启,直接关机倒是可以,好奇你们的怎么都是重启的
当然要等,你按每个键的时候,都要等一等,否则就和直接强行关机没区别。

你要是按了b是直接关机了,那么可能是系统或者你自己,自订定了这个键的功能。

按照Linux内核源码说明

'b' - Will immediately reboot the system without syncing or unmounting your disks.
头像
youzhiyili
帖子: 2422
注册时间: 2012-03-22 20:42
系统: ubuntu22.04

Re: Linux死机解决办法

#6

帖子 youzhiyili » 2014-05-10 20:28

以前老机遇到屏幕死了,鼠标也不能动了,ctrl+alt+1也没反应
后来看贴说其实已经切换过去了,要盲打
果然,盲打用户名,回车,盲打密码,回车,再sudo reboot,重启 :em11
@自由建客 @qy117121 @枫叶饭团 @cikekid @YeLee @jtshs256 @eexpress @ljj_jjl2008 @zhw2101024 @TeliuTe @月下叹逍遥 @leeaman @懒蜗牛Gentoo @灰色小狼 @photor @adagio @JiangHui @phoenixlzx @oneleaf
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: Linux死机解决办法

#7

帖子 jinjiachen » 2014-05-11 9:47

[quote="youzhiyili"]以前老机遇到屏幕死了,鼠标也不能动了,ctrl+alt+1也没反应
后来看贴说其实已经切换过去了,要盲打
果然,盲打用户名,回车,盲打密码,回车,再sudo reboot,重启 :em11[/quote
这个牛,下次我知道了
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: Linux死机解决办法

#8

帖子 jinjiachen » 2014-05-11 9:48

ipposis 写了:按reisub还要等几秒的么?

debian系统按reisub不重启,直接关机倒是可以,好奇你们的怎么都是重启的
我上次直接试过REISUB中的b,直接重启了,是可以的,我的是debian6
回复