You need to enable JavaScript to run this app.
导航

在Linux操作系统中配置panic宕机重启功能

最近更新时间2024.01.31 10:22:55

首次发布时间2024.01.02 15:33:39

当服务器由于内核panic宕机时,服务器中运行的业务也会中断。若您的业务可以通过重启恢复,可根据本文指引配置服务器panic宕机自动重启功能。

术语解释

关于内核错误

内核错误(Kernel panic)是指操作系统在监测到内部的致命错误(例如硬件故障、内存访问)。当内核触发panic时,会尽可能的打印日志信息,用于辅助问题定位,在未进行特殊配置的情况下,日志打印结束后,系统会进入宕机状态,不会响应外界的输入,也不会有新的日志输出,用户业务中断。

启动参数panic

Linux内核提供了参数panic来控制机器发生panic宕机时的行为。

  • panic=0,默认行为,服务器宕机状态,不会重启。
  • panic=n (n > 0),服务器在宕机n秒后重启。
  • panic=n (n < 0),服务器在宕机时立即重启。

操作步骤

步骤一:配置宕机重启

方式一:通过proc接口配置

在目标Linux实例中执行如下命令,使用proc接口配置panic参数值。

说明

  • 本方式支持在系统运行中修改并生效配置,但重启操作系统后将失效,需要重新配置。
  • 请将命令中5,替换为您期望的发生panic宕机时重启时间,单位为秒。例如示例命令表示服务器将在panic宕机时,5秒后重启。
echo 5 > /proc/sys/kernel/panic

方式二:通过grub文件配置

说明

  • 本方式配置后需重启操作系统生效,但重启操作系统后不会失效,无需重复配置。
  • 请将命令中5,替换为您期望的发生panic宕机时重启时间,单位为秒。例如示例命令表示服务器将在panic宕机时,5秒后重启。
  1. 在目标Linux实例中执行如下命令,将panic后自动重启参数填入grub文件。
    sed -i "/GRUB_CMDLINE_LINUX=/s/\"$/ panic=5 \"/" /etc/default/grub
    
  2. 执行如下命令,将参数配置固化到grub文件,成功后重启操作系统该配置也会生效,无需重复配置。
    • Centos
      • Legacy启动模式
        grub2-mkconfig -o /boot/grub2/grub.cfg
        
      • UEFI启动模式
        grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
        
    • Debian
      • Legacy启动模式
        grub-mkconfig -o /boot/grub2/grub.cfg
        
      • UEFI启动模式
        grub-mkconfig -o /boot/efi/EFI/debian/grub.cfg
        
    • Ubuntu
      • Legacy启动方式
        grub-mkconfig -o /boot/grub2/grub.cfg
        
      • UEFI启动方式
        grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg
        
  3. 执行如下命令,重启实例使配置生效。
    reboot
    

步骤二:验证配置

注意

当操作系统配置了kdump服务时,服务器不会在panic时保持宕机状态,而会执行kdump流程,此时您观察到的重启现象不由参数panic控制。

通过proc接口配置验证方式

  1. 在目标Linux实例中执行如下命令,触发panic宕机。
    echo c > /proc/sys-trigger
    
  2. 确认服务器宕机后会自动重启。

通过grub文件配置验证方式

  1. 在目标Linux实例中执行如下命令,查看回显信息中是否含有panic参数项。
    cat /proc/cmdline | grep 'panic'
    
    成功配置回显示例。
  2. 执行如下命令,触发panic宕机。
    echo c > /proc/sys-trigger
    
  3. 确认服务器宕机后会自动重启。