小技巧:让Linux服务器在kernel panic时自动重启

系统 Linux
再成熟、再稳定的Linux,有时候也会遇到莫名其妙的kernel panic情况。对于系统管理员而言,要进行重启需要比较麻烦的步骤,会耽误大量的时间。本文介绍了一个小技巧,让Linux服务器遇到kernel panic的时候自动重启。

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

编辑 /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

  1. ...  
  2.  if (panic_timeout > 0) {  
  3.                 /*  
  4.                  * Delay timeout seconds before rebooting the machine.  
  5.                  * We can't use the "normal" timers since we just panicked.  
  6.                  */ 
  7.                 printk(KERN_EMERG "Rebooting in %d seconds..", panic_timeout);  
  8.  
  9.                 for (i = 0; i < panic_timeout*1000; ) {  
  10.                         touch_nmi_watchdog();  
  11.                         i += panic_blink(i);  
  12.                         mdelay(1);  
  13.                         i++;  
  14.                 }  
  15.                 /*  
  16.                  * This will not be a clean reboot, with everything  
  17.                  * shutting down.  But if there is a chance of  
  18.                  * rebooting the system it will be rebooted.  
  19.                  */ 
  20.                 emergency_restart();  
  21.         }  
  22. ...  

【编辑推荐】

  1. 必知的Linux关机/重启命令
  2. Ubuntu linux关机、重启、注销命令
  3. Linux技巧:多核下绑定硬件/进程到不同CPU
责任编辑:yangsai 来源: vpsee.com
相关推荐

2018-01-31 11:20:48

2009-02-10 15:49:00

Linux服务器服务器安全网络服务器

2018-09-06 10:16:39

2013-03-11 10:40:59

XenServer无限重启

2018-05-08 10:04:39

小程序服务器备案

2009-08-20 10:19:27

故障服务器自动报警

2012-12-03 10:22:49

Linux服务器

2012-09-04 13:56:48

LinuxMySQL优化

2018-03-13 10:51:10

linux技巧服务器

2016-01-06 11:36:06

云架构服务器扩展

2012-09-20 15:11:31

Unix服务器

2015-09-16 13:19:46

javascript服务器

2012-06-04 16:01:29

Linux服务器日志

2009-09-17 15:48:58

WSUS服务器

2012-09-26 10:12:39

固态硬盘SSD服务器

2017-07-26 14:26:24

2010-03-18 17:16:42

服务器重启服务器

2010-03-03 15:49:38

Linux Oracl

2009-07-22 10:18:20

缓存服务器

2018-01-22 11:14:27

服务器托管技巧
点赞
收藏

51CTO技术栈公众号