linux卡住freeze解决办法

本文介绍了Linux系统挂起时,如何通过SysRq键进行安全重启。当键盘无响应且服务器卡住时,可以尝试Alt+SysRq+R/E/I/S/U/B的按键组合,其中S-B组合用于确保数据同步后再重启,以避免数据丢失和文件系统损坏。在执行这些步骤前,需确认内核支持SysRq功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

状况

踢出用户后启动服务器,在机房点击键盘没有反应,等待一个小时服务器一直卡在下面界面。

一些底层软件的 bug 也可能导致一些奇怪的死机问题。

Linux 运行过程中(为了提高性能)会把大量的数据暂时放在内存缓存中,而不是实时同步写入到磁盘,Linux 根据情况只有在需要(触发某条件)的时候才写入磁盘,所以这个时候挂机,数据还留在内存,没有办法及时写到磁盘,强制断电重启会造成数据不一致、部分数据丢失、文件系统损坏等。如果强制重启可能会导致ext4分区损坏。

解决方法

键盘上一般都有一个键,SysRq,如下图所示

当然有个条件是,系统虽然罢工停止了对大部分服务的响应,但仍然能处理键盘的中断请求。SysRq (System request) 常被称为 Magic SysRq key,在 Linux 下它被定义为一系列按键组合,之所以说它 magic,是因为它常能在系统挂起、多数服务都无法响应的时候做点事(预定义的操作),而且能在磁盘数据安全的情况下完成重启,除此之外还能捕获一些有用的系统运行信息。

首先确认当前使用的 Linux 内核支持 SysRq:

grep "CONFIG_MAGIC_SYSRQ" /boot/config-`uname -r`

 如果CONFIG_MAGIC_SYSRQ=y就说明支持这种方式重启

 

 SysRq 安全重启的推荐按键组合是 Alt + SysRq + R/E/I/S/U/B,同时按下 Alt 键和 SysRq 键,加上R/E/I/S/U/B (不区分大小写)中的一个键。

R – 把键盘设置为 ASCII 模式
E – 向除 init 外所有进程发送 SIGTERM 信号
I – 向除 init 外所有进程发送 SIGKILL 信号
S – 磁盘缓冲区同步
U – 重新挂载为只读模式
B – 重启系统

需要注意的是这些按键之间有顺序,而且按键之间有时间间隔(因为要等待前一个操作的完成),推荐的时间间隔是

Alt + SysRq +R

等待 1 秒

Alt + SysRq + E

等待30 秒

Alt + SysRq + I

等待 10 秒

Alt + SysRq + S

等待 5 秒

Alt + SysRq + U

等待 5 秒

Alt + SysRq + B.

我们通常只在意数据是否安全的同步到了磁盘,所以我们一般只用 S-B 组合,按下 Alt + SysRq + S 后等待 Emergency Sync complete 提示,同步完成确认后用 Alt + SysRq + B 立刻重启。

参考:使用 SysRq 键安全重启挂起的 Linux_wingking84的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值