码迷,mamicode.com
首页 > 其他好文 > 详细

使用reboot命令失败的处理方法

时间:2016-02-19 17:25:00      阅读:938      评论:0      收藏:0      [点我收藏+]

标签:服务器   程序   电源   reboot   上电   

前言:

      在我们使用服务器的时候,特别是调试一些内核态程序的时候,经常会出现程序卡死而需要重启的现象,而每当这个时候我们会发现,有些进程怎么也杀不掉。 kill -9 无效,连reboot也无效,没办法只能强制下电然后上电或直接拔掉电源,但是我们要知道直接关掉电源对服务器损坏是很严重的。从每年我司每年硬盘报损的 数字就可以看出。

      在使用任何办法都无法重启系统时,可以尝试下面的方法,此方法放弃保存当前运行的任何数据,直接重启,但是却对硬盘无害。具体解决方法如下:

echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger

 ----------------------------------------------------------------------------------------------------

下面解释下以上两条命令的含义:

1. /proc/sys/kernel/sysrq
       向sysrq文件中写入1是为了开启SysRq功能。根据linux/Documentations/sysrq.txt中所说:SysRq代表的是 Magic System Request Key。开启了这个功能以后,只要内核没有挂掉,它就会响应你要求的任何操作。但是这需要内核支持(CONFIG_MAGIC_SYSRQ选项)。向 /proc/sys/kernel/sysrq中写入0是关闭sysrq功能,写入1是开启,其他选项请参考sysrq.txt。需要注意的是, /proc/sys/kernel/sysrq中的值只影响键盘的操作。
       那么怎么使用SysRq键呢?

       在x86平台上,组合键”<ALT> + SysRq + <command key>“组成SysRq键以完成各种功能。但是,在一些键盘上可能没有SysRq键。SysRq键实际上就是”Print Screen“键。并且可能有些键盘不支持同时按三个按键,所以你可以”按住ALT键“,”按一下SysRq键“,再”按一下<command key>键“,如果你运气好的话,这个会有效果的。不过放心,现在的键盘一般都支持同时按3个或3个以上的键。

       <command key>有很多,这里只挑几个来说,其他的可以参考sysrq.txt文件。

‘b‘ —— 将会立即重启系统,并且不会管你有没有数据没有写回磁盘,也不卸载磁盘,而是完完全全的立即关机
‘o‘ —— 将会关机
‘s‘ —— 将会同步所有以挂在的文件系统
‘u‘ —— 将会重新将所有的文件系统挂在为只读属性


2. /proc/sysrq-trigger
       从文件名字就可以看出来这两个是有关系的。写入/proc/sysrq-trigger中的字符其实就是sysrq.txt中说的<command key>键所对应的字符,其功能也和上述一样。

所以,这两行命令先开启SysRq功能,然后用‘b‘命令让计算机立刻重启。

真心希望能帮到大家,谢谢!


本文出自 “杜海强” 博客,谢绝转载!

使用reboot命令失败的处理方法

标签:服务器   程序   电源   reboot   上电   

原文地址:http://dulinux.blog.51cto.com/10803129/1743417

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!