博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux中SysRq的使用
阅读量:3522 次
发布时间:2019-05-20

本文共 2271 字,大约阅读时间需要 7 分钟。

当Linux 
系统不能正常响应用户请求时, 可以使用SysRq小工具控制Linux.
一 SysRq的启用与关闭
要想启用SysRq, 需要在配置内核时设置Magic SysRq key (CONFIG_MAGIC_SYSRQ)为Y. 对于支持SysRq的内核, /proc/sys/kernel/sysrq控制SysRq的启用与否. 如果/proc/sys/kernel/sysrq内容为0, 则SysRq被禁用; 如果/proc/sys/kernel/sysrq内容为1, 则SysRq被启用. 关于/proc/sys/kernel/sysrq的更多描述, 请参考<Kernel Source>/Documentation/sysrq.txt
可通过运行命令echo "0" >/proc/sys/kernel/sysrq和echo "1" >/proc/sys/kernel/sysrq暂时启用或禁用SysRq. 
如果需要永久启用或者禁用SysRqs, 则可在/etc/sysctl.conf中设置kernel.sysrq = 1 (启用SsyRq)或kernel.sysrq = 0 (禁用SysRq)
二 SysRq的使用
SysRq的命令键有
'r'     - Turns off keyboard raw mode and sets it to XLATE.
'k'     - Secure Access Key (SAK) Kills all programs on the current virtual
          console. NOTE: See important comments below in SAK section.
'b'     - Will immediately reboot the system without syncing or unmounting
          your disks.
'o'     - Will shut your system off (if configured and supported).
's'     - Will attempt to sync all mounted filesystems.
'u'     - Will attempt to remount all mounted filesystems read-only.
'p'     - Will dump the current registers and flags to your console.
't'     - Will dump a list of current tasks and their information to your
          console.
'm'     - Will dump current memory info to your console.
'0'-'9' - Sets the console log level, controlling which kernel messages
          will be printed to your console. ('0', for example would make
          it so that only emergency messages like PANICs or OOPSes would
          make it to your console.)
'e'     - Send a SIGTERM to all processes, except for init.
'i'     - Send a SIGKILL to all processes, except for init.
'l'     - Send a SIGKILL to all processes, INCLUDING init. (Your system
          will be non-functional after this.)
'h'     - Will display help ( actually any other key than those listed
          above will display help. but 'h' is easy to remember :-)
在终端上同时按Alt, SysRq和命令键则会执行SysRq命令, SysRq键就是"Prent Screen"健. 比如Alt+SysRq+b则重启机器. 
如果使用telnet 或ssh连接到服务器则可以使用echo '<SysRq命令键>' > /proc/sysrq-trigger的方式执行SysRq命令, 比如
echo 'b' > /proc/sysrq-trigger重启系统.
三 常用的SysRq命令(序列)
3.1 重启机器的SysRq命令序列是 k(SAK) s(sync) u(umount) b(reboot)
3.2 显示内存信息的SysRq命令是m(memory)
3.3 显示当前任务信息的SysRq命令是t(task)
四 参考材料
<Kernel Source>/Documentation/sysrq.txt: sysrq.txt最权威的文档, 最好参考当前运行的kernel附带的文档. 或者去http://lxr.linux.no/source/Documentation/sysrq.txt查看
Oracle Metalink Note 228203.1: Alt SysRq Keys Utility on Linux

转载地址:http://zfhqj.baihongyu.com/

你可能感兴趣的文章
[HDU 2520] 我是菜鸟,我怕谁(不一样的for循环)
查看>>
[HDU 1215] 七夕节(求因子,不超时)
查看>>
[POJ 1915] Knight Moves
查看>>
Memcache技术精华
查看>>
Redis详解入门篇
查看>>
php开启redis扩展包与redis安装
查看>>
php使用openssl来实现非对称加密
查看>>
pdo如何防止 sql注入
查看>>
myisam和innodb的区别
查看>>
MySQL建表规范与注意事项(个人精华)
查看>>
JDK8接口的新特性
查看>>
synchronized的局限性与lock的好处
查看>>
redis和memcached有什么区别?
查看>>
Spring中的设计模式
查看>>
如何设计一个秒杀系统 -- 架构原则
查看>>
如何设计一个秒杀系统 -- 动静分离方案
查看>>
JWT 快速了解
查看>>
实习日志一
查看>>
排序算法稳定性
查看>>
图算法总结(判断有环、最短路径)
查看>>