Linux使用shutdown -r now 或者 rebootinit 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 进程外所有进程