Linux 遇到 kernel panic 后可自动重启

现在的 Linux 比10年前要成熟的多,但有时候还是会出现莫名其妙、无法解释的 kernel panic 情况。对于大部分 Linux 用户来说出现 kernel panic 重启一下就可以了,但是对于系统管理员和那些做虚拟主机、共享主机、OpenVZ VPS 主机的 hosting 服务商来说出现未知的 kernel panic、导致系统挂掉可能就不太友好,如果没有 KVM over IP 的话,系统挂掉后 hosting 服务商需要自己先反馈到上一级的独立服务器提供商,比如提交 ticket 或者打电话,然后独立服务器供应商还要时间验证你的资料、处理你的 ticket,最后才到真正的数据中心,一般晚上(中国的白天)数据中心只有几个人值班,到最后处理完你的重启请求可能已经过了20多分钟了,这20分钟的 downtime 时间你还要给你自己的客户写信解释情况,问题是这20分钟还是理想情况,如果你碰到一个很烂的独立服务器提供商或数据中心,处理 ticket 要以小时或天为单位来计,或者如果你是 one man、晚上正在睡觉没有收到 kernel panic 报警,这样的话花的时间就会更多。那么有没有办法让 Linux 服务器遇到 kernel panic 情况自动重启呢?

编辑 /etc/sysctl.conf 文件,并定义遇到 kernel panic 20秒后自动重启 Linux:

# vi /etc/sysctl.conf
kernel.panic = 20

Linux 这么神奇?遇到 kernel panic 自己都挂了还能自己重启?来看看 Linux 内核里面这部分代码是怎么工作的,最好最权威的资料永远来自内核源代码:

# vi linux-2.6.31.8/kernel/panic.c

...
 if (panic_timeout > 0) {
                /*
                 * Delay timeout seconds before rebooting the machine.
                 * We can't use the "normal" timers since we just panicked.
                 */
                printk(KERN_EMERG "Rebooting in %d seconds..", panic_timeout);

                for (i = 0; i < panic_timeout*1000; ) {
                        touch_nmi_watchdog();
                        i += panic_blink(i);
                        mdelay(1);
                        i++;
                }
                /*
                 * This will not be a clean reboot, with everything
                 * shutting down.  But if there is a chance of
                 * rebooting the system it will be rebooted.
                 */
                emergency_restart();
        }
...
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kernel panic - not syncing: Attempted to kill init!是一种严重的内核错误,表示内核无法继续正常运行并试图终止init进程。修复这个问题的步骤如下: 1. 首先,尝试重启系统。如果问题仍然存在,进入控制台查看错误信息。\[1\] 2. 如果重启后仍然出现相同的错误,可以尝试进入单用户模式进行排查。在控制台重启后,按下任意键,然后按下"e"键。使用上下箭头选择第二个选项,再次按下"e"键。在末尾添加"1",然后按下Enter键,最后按下"b"键进入单用户模式。然而,如果单用户模式也无法进入并且错误仍然存在,需要尝试其他方法。\[2\] 3. 下一步是进入救援模式。挂载镜像并从光盘启动系统。按下上下箭头选择救援模式启动。进入救援模式后,使用chroot命令切换到根目录环境下,执行以下命令:chroot /mnt/sysimage。\[3\] 以上是修复Kernel panic - not syncing: Attempted to kill init!故障的一般步骤。然而,具体的修复方法可能因系统环境和具体情况而异。建议在进行修复之前,先备份重要数据,并参考相关文档或咨询专业人士以获取更准确的指导。 #### 引用[.reference_title] - *1* *2* *3* [Kernel panic – not syncing: Attempted to kill init!故障修复](https://blog.csdn.net/weixin_43770382/article/details/107686813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值