zoukankan      html  css  js  c++  java
  • SysRq组合键是一组"魔术组合键"

    SysRq


    SysRq组合键是一组"魔术组合键",只要内核没有被完全锁住,键盘还能够使用,不管内核在做什么事情,使用这些组合键可以立即打印出内核的信息。

    使用sysrq组合键是了解系统目前运行情况的最好方式。如果系统出现挂起的情况或者在诊断一些和内核相关,比较怪异,比较难重现的问题的时候,使用sysrq键是一个比较好的方式。

    通常为了安全起见,默认SysRq组合键是关闭的。


    开启或关闭SysRq

    打开这个功能:

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

    关闭这个功能:

    # echo 0 > /proc/sys/kernel/sysrq

    如果想让此功能一直生效,在/etc/sysctl.conf里面设置kernel.sysrq的值为1. 重新启动以后,此功能将会自动打开。

    kernel.sysrq = 1


    因为打开sysrq键的功能以后,有终端访问权限的用户将会拥有一些特殊的功能。因此,除非是要调试,解决问题,一般情况下,不要打开此功能。如果一定要打开,请确保您的终端访问的安全性。



    触发SysRq事件

    有几种方式可以触发sysrq事件。在带有AT键盘的一般系统上,在终端上输入一下组合键:

    Alt+PrintScreen+[CommandKey]


    例如,要让内核导出内存信息(CommandKey "m"),您应该同时按下Alt 和 Print Screen 键,然后按下 提示此组合键在Xwindows上是无法使用的。所以,您先要切换到文本虚拟终端下。如果您现在是在图形界面,可以按Ctrl+Alt+F1切换到虚拟终端。

    当我触发一个sysrq事件的时候,结果保存在什么地方?

    当一个sysrq命令被触发,内核将会打印信息到内核的环形缓冲并输出到系统控制台。此信息一般也会通过syslog输出到/var/log/messages.

    有时候,可能系统已经无法响应,syslogd可能无法记录此信息。在这种情况下,建议您配置一个串口终端来收集这个信息。


    通用SysRq事件

    不同的内核版本可能会有些不同。但有一些是通用的:

    * m - 导出关于内存分配的信息

    * t - 导出线程状态信息

    * p - 到处当前CPU寄存器信息和标志位的信息

    * c - 故意让系统崩溃(在使用netdump或者diskdump的时候有用)

    * s - 立即同步所有挂载的文件系统

    * u - 立即重新挂载所有的文件系统为只读

    * b - 立即重新启动系统

    * o - 立即关机(如果机器配置并支持此项功能)

  • 相关阅读:
    【转】return 使用示例
    java基础_二维数组的行和列
    新版SQL授权用户时报错 near 'IDENTIFIED BY '密码' with grant option' at line 1
    GO kafka sarama 生产者 消费者 简单 实现
    Windows 安装kafka
    windows 连接nsq
    reflect: call of reflect.Value.NumField on ptr Value
    django 数据库 mysql 事务 处理
    python 类的继承
    python 中 insert 返回 None
  • 原文地址:https://www.cnblogs.com/lixuebin/p/10814362.html
Copyright © 2011-2022 走看看