当服务器由于内核panic宕机时,服务器中运行的业务也会中断。若您的业务可以通过重启恢复,可根据本文指引配置服务器panic宕机自动重启功能。
内核错误(Kernel panic)是指操作系统在监测到内部的致命错误(例如硬件故障、内存访问)。当内核触发panic时,会尽可能的打印日志信息,用于辅助问题定位,在未进行特殊配置的情况下,日志打印结束后,系统会进入宕机状态,不会响应外界的输入,也不会有新的日志输出,用户业务中断。
Linux内核提供了参数panic
来控制机器发生panic宕机时的行为。
panic=0
,默认行为,服务器宕机状态,不会重启。panic=n (n > 0)
,服务器在宕机n
秒后重启。panic=n (n < 0)
,服务器在宕机时立即重启。在目标Linux实例中执行如下命令,使用proc接口配置panic
参数值。
说明
5
,替换为您期望的发生panic宕机时重启时间,单位为秒。例如示例命令表示服务器将在panic宕机时,5秒后重启。echo 5 > /proc/sys/kernel/panic
说明
5
,替换为您期望的发生panic宕机时重启时间,单位为秒。例如示例命令表示服务器将在panic宕机时,5秒后重启。sed -i "/GRUB_CMDLINE_LINUX=/s/\"$/ panic=5 \"/" /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
grub-mkconfig -o /boot/grub2/grub.cfg
grub-mkconfig -o /boot/efi/EFI/debian/grub.cfg
grub-mkconfig -o /boot/grub2/grub.cfg
grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg
reboot
注意
当操作系统配置了kdump服务时,服务器不会在panic时保持宕机状态,而会执行kdump流程,此时您观察到的重启现象不由参数panic
控制。
echo c > /proc/sys-trigger
成功配置回显示例。cat /proc/cmdline | grep 'panic'
echo c > /proc/sys-trigger