Linux使用shutdown -r now
或者 reboot
、init 6
命令无法重启时使用以下两条命令可强制重启:
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
。
2./proc/sysrq-trigger
- 立即重新启动计算机:
echo "b" > /proc/sysrq-trigger
- 立即关闭计算机:
echo "o" > /proc/sysrq-trigger
- 导出内存信息:
echo "m" > /proc/sysrq-trigger
- 导出所有标志位和寄存器信息:
echo "p" > /proc/sysrq-trigger
- 导出线程状态信息:
echo "t" > /proc/sysrq-trigger
- 使系统崩溃:
echo "c" > /proc/sysrq-trigger
- 同步连接系统磁盘:
echo "s" > /proc/sysrq-trigger
- 重新挂载所有文件系统为只读:
echo "u" > /proc/sysrq-trigger
此外还有两个,类似于强制注销的功能:
- 'e' — 使用
SIGTERM
信号杀死除init
进程外所有进程 - 'i' — 使用
SIGKILL
信号杀死除init
进程外所有进程
本文转自dongsong1117 51CTO博客,原文链接:http://blog.51cto.com/dongsong/2048316,如需转载请自行联系原作者