zoukankan      html  css  js  c++  java
  • LINUX远程强制重启/proc/sys/kernel/sysrq /proc/sysrq-trigger

    1.     # echo 1 > /proc/sys/kernel/sysrq  

    2.     # 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中说的键所对应的字符,其功能也和上述一样。

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

    /proc/sysrq-trigger该文件能做些什么事情呢? 

    # 立即重新启动计算机 (Reboots the kernel without first unmounting file systems or syncing disks attached to the system)

    echo "b" > /proc/sysrq-trigger

    # 立即关闭计算机(shuts off the system)

    echo "o" > /proc/sysrq-trigger

    # 导出内存分配的信息 (可以用/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

  • 相关阅读:
    spring 事务
    Servlet详解之两个init方法的作用
    被request.getLocalAddr()苦闷了很久
    Java获取IP地址:request.getRemoteAddr()警惕
    MongoDB笔记
    hexo+github搭建博客
    Python处理Excel(使用openpyxl库)
    Wireshark使用学习
    查看开启操作系统端口
    记录Centos7服务器搭建过程
  • 原文地址:https://www.cnblogs.com/zougang/p/6684049.html
Copyright © 2011-2022 走看看