实际生产环境中某些情况下 Linux 服务器系统在出现致命错误需要远程进行重启,通过常规的 rebootinit 6 等方法无法正常重启(例如重启时卡在驱动程序里等情况),这时就需要通过下面介绍的几种特殊的方法进行强制重启。

注意

下面这些强制重启 Linux 的方法都是直接跳过 umount 文件系统及 sync 等操作,可能导致数据损坏,不在特殊情况下请勿使用。另外当然这些都是需要 root 超级用户权限的哦。

reboot 命令

直接通过运行 reboot -nf 命令,这样重启时可以指定跳过 init 的处理和 sync 操作,这样可以避免大多数情况下的问题。

magic SysRq key 方法

magic SysRq key 通过 proc 接口提供用户直接发底层命令给 kernel 的功能,可以实现关机、重启、宕机等操作,Linux kernel 需要开启 CONFIG_MAGIC_SYSRQ 才可以支持 magic SysRq key。

运行下面两条命令就可以直接强制重启系统:

1
2
[root@localhost ~]# echo 1 > /proc/sys/kernel/sysrq
[root@localhost ~]# echo b > /proc/sysrq-trigger

相应的直接强制关机的命令:

1
2
[root@localhost ~]# echo 1 > /proc/sys/kernel/sysrq
[root@localhost ~]# echo o > /proc/sysrq-trigger

watchdog 方法

如果 Linux kernel 未开启 magic SysRq key 或者不起作用,可以尝试使用 watchdog 重启方法。watchdog 通过监控数据输入是否正常可以实现在系统出现异常时自动重启系统,这里我们刚好可以借用的。

首先需要加载 watchdog 支持,这个和主板硬件设备有关,如果只需要软件模拟的,可以运行:

1
[root@localhost ~]# modprobe softdog

命令加载软件 watchdog 支持,接着再运行:

1
[root@localhost ~]# cat /dev/watchdog

命令,该命令会马上退出并报错,同时系统日志中就会提示:

1
softdog: Unexpected close, not stopping watchdog!

这就表示 watchdog 设备是被意外关闭的而不是正常停止的,大约等待 60 秒之后你就会发现 Linux 系统自动重启了。Linux watchdog 的异常等待时间是通过 /proc/sys/kernel/watchdog_thresh 设置的,一般默认为 60 秒。

IPMI 方法

上面几种方法都不能用?如果你的主板刚好支持 IPMI 管理接口的话,那可以直接通过 IPMI 实现硬件上的强制关机或重启。

首先加载 IPMI 支持:

1
[root@localhost ~]# modprobe ipmi_msghandler ipmi_devintf ipmi_si

确认 IPMI 设备是否已找到:

1
[root@localhost ~]# ls -l /dev/ipmi*

如果输出正常的话表示 IPMI 被正确加载了,接着安装 ipmitool 管理工具。ipmitool 可以通过 IPMI 接口完成对本机或远程主机的一系列管理操作。

这里我们就用直接电源管理的,重启系统:

1
[root@localhost ~]# ipmitool power reset

运行完成后主机就会马上重启,相应的关闭主机可以运行命令:

1
[root@localhost ~]# ipmitool power off

ipmitool 还可以实现在系统未启动时远程查看监控主板硬件状态等功能,在 IPMI 可用的情况下 ipmitool 还是比较方便好用的。

强制重启Linux系统的几种方法的更多相关文章

  1. 远程重启linux主机的几种方法

    方法一,在终端上利用ssh,不登录远程主机,直接发送重启命令 ssh root@192.168.8.128 'reboot' 方法二,在终端上利用ssh和here document ssh root@ ...

  2. linux安装IPython四种方法

    IPython是Python的交互式Shell,提供了代码自动补完,自动缩进,高亮显示,执行Shell命令等非常有用的特性.特别是它的代码补完功能,例如:在输入zlib.之后按下Tab键,IPytho ...

  3. linux 时间同步的2种方法(转)

    linux 时间同步的2种方法 张映 发表于 2012-10-23 分类目录: 服务器相关 标签:linux, ntp, 同步, 时间服务器 由于硬件的原因,机器或多或少的根标准时间对不上,一个月的误 ...

  4. Linux系统中安装软件方法总结

    Linux系统中安装软件方法总结 [1]Linux系统中安装软件的几种方式 [2] Linux配置yum源(本地源和网络源) [3] SuSE下zypper源配置 [4] SUSE zypper 本地 ...

  5. linux系统ecshop拿shell方法

    Title:linux系统ecshop拿shell方法  --2011-06-08 13:23 最近弄一个站,对ECSHOP拿shell不了解,导致走了很多的弯路. nginx/0.8.54的服务器, ...

  6. python执行linux命令的两种方法

    python执行linux命令有两种方法: 在此以Linux常用的ls命令为例: 方法一:使用os模块 1 2 3 shell# python >> import os >> ...

  7. Ubuntu,CenOS等Linux系统更改环境变量方法,以安装anaconda为例

    [环境配置的原因] 在windows系统下,很多软件的安装都需要设置环境变量,比如安装JAVA JDK.如果不安装环境变量,在非软件安装的目录下运行javac命令,将会报告"找不到文件&qu ...

  8. linux 时间同步的2种方法

    转载自: http://blog.51yip.com/server/1474.html 由于硬件的原因,机器或多或少的根标准时间对不上,一个月的误差几秒到几分钟不等.对于服务器来说时间不准,会有很多麻 ...

  9. linux系统的7种运行级别

    Linux系统有7个运行级别(runlevel)运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆运行级别2:多 ...

随机推荐

  1. 洛谷P3832 [NOI2017]蚯蚓排队 【链表 + 字符串hash】

    题目链接 洛谷P3832 题解 字符串哈希然后丢到hash表里边查询即可 因为\(k \le 50\),1.2操作就暴力维护一下 经复杂度分析会发现直接这样暴力维护是对的 一开始自然溢出WA了,还以为 ...

  2. php函数注释

    https://segmentfault.com/q/1010000003087072 phpstorm /**+回车

  3. 【bzoj3685】普通van Emde Boas树 线段树

    普通van Emde Boas树 Time Limit: 9 Sec  Memory Limit: 128 MBSubmit: 1969  Solved: 639[Submit][Status][Di ...

  4. Jerasure 1.2A 中的 C 函数 tips

    C stat函数的用法举例 C语言 fread()与fwrite()函数说明与示例 /  C 库函数 - fwrite() C 库函数 - sprintf()

  5. jsonp 格式

    jQuery(document).ready(function(){ $.ajax({ type: "get", async: false, url: "http://f ...

  6. JS与验证控件结合验证

    原文发布时间为:2010-05-14 -- 来源于本人的百度文章 [由搬家工具导入] 把BUTTOn中 的return CheckFive()去 掉 .. 放 到 <Form id=" ...

  7. 【jetty】Jetty与Tomcat的区别

    Jetty 的架构从前面的分析可知,它的所有组件都是基于 Handler 来实现,当然它也支持 JMX.但是主要的功能扩展都可以用 Handler 来实现.可以说 Jetty 是面向 Handler ...

  8. Android开发基础(java)1

    基本概念: 一.结构化方法与结构化程序设计 1.结构化方法:源自迪克斯特拉(E.W.Dijkstra)提出的结构化概念,采用自顶向下.逐步求精的模块化设计方法.核心是将工作分成若干个相互独立的模块,使 ...

  9. 阿里云服务器 centos 7 安装postgresql 11

    Postgresql简介 官方网站:https://www.postgresql.org/ 简介参考zhihu文章 https://www.zhihu.com/question/20010554 关于 ...

  10. LeetCode OJ--Copy List with Random Pointer **

    https://oj.leetcode.com/problems/copy-list-with-random-pointer/ 灵活的指针链表应用. 每个节点有两个指针next,random,对本链表 ...