实际生产环境中某些状况下 Linux 服务器系统在出现致命错误须要远程进行重启,经过常规的 reboot、init 6 等方法没法正常重启(例如重启时卡在驱动程序里等状况),这时就须要经过下面介绍的几种特殊的方法进行强制重启。注意这些强制重启的方法都是直接跳过 umount 文件系统及 sync 等操做,可能致使数据损坏,不在特殊状况下请勿使用,固然这些都是 root 超级用户才有权限的哦。服务器
一、reboot 命令:ide
直接经过运行 reboot -nf 命令,这样重启时能够指定跳过 init 的处理和 sync 操做,这样能够避免大多数状况下的问题。工具
二、magic SysRq key 方法:spa
magic SysRq key 经过 proc 接口提供用户直接发底层命令给 kernel 的功能,能够实现关机、重启、宕机等操做,Linux kernel 须要开启 CONFIG_MAGIC_SYSRQ 才能够支持 magic SysRq key。日志
运行下面两条命令就能够直接强制重启系统:orm
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger接口
相应的直接强制关机的命令:ip
echo 1 > /proc/sys/kernel/sysrq
echo o > /proc/sysrq-triggerit
三、watchdog 方法:class
若是 Linux kernel 未开启 magic SysRq key 或者不起做用,能够尝试使用 watchdog 重启方法。watchdog 经过监控数据输入是否正常能够实如今系统出现异常时自动重启系统,这里咱们恰好能够借用的。
首先须要加载 watchdog 支持,这个和主板硬件设备有关,若是只须要软件模拟的,能够运行:
modprobe softdog
命令加载软件 watchdog 支持,接着再运行:
cat /dev/watchdog
命令,该命令会立刻退出并报错,同时系统日志中就会提示:
softdog: Unexpected close, not stopping watchdog!
这就表示 watchdog 设备是被意外关闭的而不是正常中止的,大约等待 60 秒以后你就会发现 Linux 系统自动重启了。Linux watchdog 的异常等待时间是经过 /proc/sys/kernel/watchdog_thresh 设置的,通常默认为 60 秒。
四、IPMI 方法:
上面几种方法都不能用?若是你的主板恰好支持 IPMI 管理接口的话,那能够直接经过 IPMI 实现硬件上的强制关机或重启。
首先加载 IPMI 支持:
modprobe ipmi_msghandler ipmi_devintf ipmi_si
确认 IPMI 设备是否已找到:
ls -l /dev/ipmi*
若是输出正常的话表示 IPMI 被正确加载了,接着安装 ipmitool 这个管理工具。ipmitool 能够经过 IPMI 接口完成对本机或远程主机的一系列管理操做。
这里咱们就用直接电源管理的,重启系统:
ipmitool power reset
运行完成后主机就会立刻重启,相应的关闭主机能够运行:
ipmitool power off
ipmitool 还能够实如今系统未启动时远程查看监控主板硬件状态等功能,在 IPMI 可用的状况下 ipmitool 仍是比较方便好用的。