无物理访问权限下,Ubuntu服务器出现BUG: soft lockup时如何重启/解决?
无物理访问权限下,Ubuntu服务器出现BUG: soft lockup时如何重启/解决?
兄弟我太懂你这种抓瞎的感觉了——没CS背景硬被推成组里的IT负责人,服务器卡成软锁死还碰不到硬件,机房人员又失联,简直原地爆炸!咱们先试试几个远程救急的办法,能救一个是一个:
1. 试试Linux的「魔法重启组合键」(SysRq)
这是Linux系统自带的应急工具,哪怕系统大部分卡死,只要内核还没彻底挂掉,大概率能生效。操作步骤一定要慢,别着急:
- 在你当前被错误刷屏的终端里,按住 Alt + SysRq(SysRq一般就是键盘上的「PrintScreen」键,有些键盘会标成「PrtSc」或直接写「SysRq」)
- 然后按顺序逐个慢敲以下字母,每个按键间隔1-2秒(哪怕屏幕还在刷错误,系统会偷偷接收你的按键):
r:解锁被卡死的键盘e:温和终止所有用户进程(尽量不破坏数据)i:强制杀死还不肯退出的顽固进程s:把内存里的数据同步到硬盘(避免丢数据)u:把所有磁盘挂载为只读模式(防止重启时损坏文件系统)b:立刻重启服务器
这个组合是安全重启的标准流程,能最大程度保护你的数据,比硬断电靠谱多了。
2. 检查是否有远程管理卡可用
如果你们的服务器是品牌机(比如戴尔、惠普),大概率带远程管理卡(Dell叫iDRAC,HP叫iLO):
- 试试用浏览器访问管理卡的专属IP(一般是单独配置的,和服务器业务IP不一样),如果能进去,找「重启服务器」或者「强制重置」的选项
- 要是你知道管理卡的账号密码,也可以用命令行工具发送重启命令,格式大概是:
ipmitool -I lanplus -H <管理卡IP> -U <用户名> -P <密码> chassis power reset
不过你说KVM显示状态是「Down」,可能管理卡也挂了,但还是值得一试。
3. 最后实在没辙的话...
如果上面的办法都不管用,那可能真的只能等机房工作人员回复了。不过趁这个时间,咱可以记下来以后要提前做的预防措施,避免下次再遭罪:
- 永久开启SysRq功能:编辑
/etc/sysctl.conf,添加一行kernel.sysrq=1,然后执行sysctl -p生效 - 配置好远程管理卡的IP和账号,确保随时能远程控制
- 可以整个简单的监控脚本,比如定期检查系统日志里的「soft lockup」关键词,一旦触发就自动执行SysRq重启(不过这个需要点基础,等服务器活过来再研究)
备注:内容来源于stack exchange,提问作者Bee




