重启服务器linux
向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键呢?ide
在x86平台上,组合键”<ALT> + SysRq + <command key>“组成SysRq键以完成各类功能。可是,在一些键盘上可能没有SysRq键。SysRq键实际上就是”Print Screen“键。而且可能有些键盘不支持同时按三个按键,因此你能够”按住ALT键“,”按一下SysRq键“,再”按一下<command key>键“,若是你运气好的话,这个会有效果的。不过放心,如今的键盘通常都支持同时按3个或3个以上的键。spa
<command key>有不少,这里只挑几个来讲,其余的能够参考sysrq.txt文件。线程
从文件名字就能够看出来这两个是有关系的。写入/proc/sysrq-trigger中的字符其实就是sysrq.txt中说的<command key>键所对应的字符,其功能也和上述同样。orm
因此,这两行命令先开启SysRq功能,而后用'b'命令让计算机马上重启。内存
/proc/sysrq-trigger该文件能作些什么事情呢?
# 当即从新启动计算机 (Reboots the kernel without first unmounting file systems or syncing disks attached to the system)
echo "b" > /proc/sysrq-triggerci
# 当即关闭计算机(shuts off the system)
echo "o" > /proc/sysrq-triggerrem
# 导出内存分配的信息 (能够用/var/log/message 查看)(Outputs memory statistics to the console)
echo "m" > /proc/sysrq-trigger同步
# 导出当前CPU寄存器信息和标志位的信息(Outputs all flags and registers to the console)
echo "p" > /proc/sysrq-trigger
# 导出线程状态信息 (Outputs a list of processes to the console)
echo "t" > /proc/sysrq-trigger
# 故意让系统崩溃 ( Crashes the system without first unmounting file systems or syncing disks attached to the system)
echo "c" > /proc/sysrq-trigger
# 当即从新挂载全部的文件系统 (Attempts to sync disks attached to the system)
echo "s" > /proc/sysrq-trigger
# 当即从新挂载全部的文件系统为只读 (Attempts to unmount and remount all file systems as read-only)
echo "u" > /proc/sysrq-trigger
呵呵,此外还有两个,相似于强制注销的功能
e — Kills all processes except init using SIGTERM i — Kills all processes except init using SIGKILL