/proc/sysrq-trigger文件
# 立即重新启动计算机
echo "b" > /proc/sysrq-trigger
# 立即关闭计算机
echo "o" > /proc/sysrq-trigger
# 导出内存分配的信息 (可以用/var/log/message 查看)
echo "m" > /proc/sysrq-trigger
# 导出当前CPU寄存器信息和标志位的信息
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
表格
命令 |
功能 |
b |
将立即重新启动系统,而无需同步或卸载磁盘。 |
c |
将通过NULL指针取消引用来执行系统崩溃。如果进行了配置,则将执行故障转储。 |
d |
显示所有持有的锁。 |
e |
将SIGTERM发送给所有进程(init除外)。 |
f |
将调用oom killer杀死内存消耗进程,但如果什么也无法杀死,则不要惊慌。 |
g |
由kgdb使用(内核调试器) |
h |
将显示帮助(实际上,除此处列出的键以外的任何其他键都将显示帮助。但h很容易记住:-) |
i |
发送SIGKILL到所有进程,初始化除外。 |
j |
强制“仅解冻”-被FIFREEZE ioctl冻结的文件系统。 |
k |
安全访问密钥(SAK)杀死当前虚拟控制台上的所有程序。注意:请参阅下面“ SAK”部分中的重要注释。 |
l |
显示所有活动CPU的堆栈回溯。 |
m |
将当前的内存信息转储到您的控制台。 |
n |
用于使RT任务变得更好 |
o |
将关闭您的系统(如果已配置和支持)。 |
p |
将当前的寄存器和标志转储到您的控制台。 |
q |
将按CPU转储所有配备的hrtimer的列表(但不是常规的timer_list定时器),以及有关所有clockevent设备的详细信息。 |
r |
关闭键盘原始模式并将其设置为XLATE。 |
s |
将尝试同步所有已挂载的文件系统。 |
t |
将当前任务列表及其信息转储到控制台。 |
u |
将尝试以只读方式重新挂载所有已挂载的文件系统。 |
v |
强制还原帧缓冲控制台 |
w |
转储处于不间断(阻塞)状态的任务。 |
x |
由ppc / powerpc平台上的xmon接口使用。在sparc64上显示全局PMU寄存器。在MIPS上转储所有TLB条目。 |
y |
显示全局CPU寄存器[特定于SPARC-64] |
z |
转储ftrace缓冲区 |
0-9 |
设置控制台日志级别,控制将哪些内核消息打印到控制台。(0例如,这样做可以使只有紧急消息(如PANIC或OOPS)才能进入控制台。) |
Documentation for sysrq.c
Documentation for sysrq.c
Based on kernel version 2.6.38. Page generated on 2011-03-22 22:20 EST.
Linux Magic System Request Key Hacks
Documentation for sysrq.c
* What is the magic SysRq key?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
It is a 'magical' key combo you can hit which the kernel will respond to
regardless of whatever else it is doing, unless it is completely locked up.
* How do I enable the magic SysRq key?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You need to say "yes" to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when
configuring the kernel. When running a kernel with SysRq compiled in,
/proc/sys/kernel/sysrq controls the functions allowed to be invoked via
the SysRq key. By default the file contains 1 which means that every
possible SysRq request is allowed (in older versions SysRq was disabled
by default, and you were required to specifically enable it at run-time
but this is not the case any more). Here is the list of possible values
in /proc/sys/kernel/sysrq:
0 - disable sysrq completely
1 - enable all functions of sysrq
>1 - bitmask of allowed sysrq functions (see below for detailed function
description):
2 - enable control of console logging level
4 - enable control of keyboard (SAK, unraw)
8 - enable debugging dumps of processes etc.
16 - enable sync command
32 - enable remount read-only
64 - enable signalling of processes (term, kill, oom-kill)
128 - allow reboot/poweroff
256 - allow nicing of all RT tasks
You can set the value in the file by the following command:
echo "number" >/proc/sys/kernel/sysrq
Note that the value of /proc/sys/kernel/sysrq influences only the invocation
via a keyboard. Invocation of any operation via /proc/sysrq-trigger is always
allowed (by a user with admin privileges).
* How do I use the magic SysRq key?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On x86 - You press the key combo 'ALT-SysRq-<command key>'. Note - Some
keyboards may not have a key labeled 'SysRq'. The 'SysRq' key is
also known as the 'Print Screen' key. Also some keyboards cannot
handle so many keys being pressed at the same time, so you might
have better luck with "press Alt", "press SysRq", "release SysRq",
"press <command key>", release everything.
On SPARC - You press 'ALT-STOP-<command key>', I believe.
On the serial console (PC style standard serial ports only) -
You send a BREAK, then within 5 seconds a command key. Sending
BREAK twice is interpreted as a normal BREAK.
On PowerPC - Press 'ALT - Print Screen (or F13) - <command key>,
Print Screen (or F13) - <command key> may suffice.
On other - If you know of the key combos for other architectures, please
let me know so I can add them to this section.
On all - write a character to /proc/sysrq-trigger. e.g.:
echo t > /proc/sysrq-trigger
* What are the 'command' keys?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'b' - Will immediately reboot the system without syncing or unmounting
your disks.
'c' - Will perform a system crash by a NULL pointer dereference.
译文
sysrq.c文档
基于内核版本2.6.38。美国东部时间2011-03-22 22:20生成的页面。
1次Linux Magic系统请求密钥破解
sysrq.c的文档
三
*什么是神奇的SysRq键?
五~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这是一个“神奇”的组合键,你可以点击它内核会做出反应
不管它在做什么,除非它被完全锁起来。
*如何启用神奇的SysRq密钥?
个~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
您需要对“Magic SysRq key(CONFIG_Magic_SysRq)”说“是”,当
配置内核。运行编译了SysRq的内核时,
/proc/sys/kernel/sysrq控制允许通过调用的函数
SysRq键。默认情况下,文件包含1,这意味着
允许可能的SysRq请求(在旧版本中SysRq被禁用
默认情况下为16,并且要求您在运行时特别启用它
但现在情况不再是这样了)。这是可能值的列表
在/proc/sys/kernel/sysrq中:
0-完全禁用sysrq
-启用sysrq的所有功能
>1-允许的sysrq函数的位掩码(有关详细功能,请参见下文
说明):
2-启用控制台日志记录级别的控制
4-启用键盘控制(SAK,unraw)
8-启用进程等的调试转储。
16-启用同步命令
32-启用只读重新装载
64-启用进程的信令(term,kill,oom kill)
128-允许重新启动/关闭电源
256-允许对所有RT任务进行nicing
您可以通过以下命令设置文件中的值:
echo“number”>/proc/sys/kernel/sysrq
注意/proc/sys/kernel/sysrq的值只影响调用
通过键盘。通过/proc/sysrq触发器调用任何操作总是
允许(由具有管理员权限的用户)。
*如何使用神奇的SysRq键?
40个~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
按组合键。注意-一些
键盘可能没有标有“SysRq”的键。“SysRq”键是
也称为“打印屏幕”键。有些键盘也不能
同时处理这么多按键,这样你就可以
“按Alt”,“按SysRq”,“release SysRq”,
“按下<命令键>”,释放所有内容。
在SPARC上-我相信你按ALT-STOP-<command key>。
在串行控制台上(仅限PC风格的标准串行端口)-
你发送一个中断,然后在5秒内发出一个命令键。发送
两次中断被解释为正常中断。
在PowerPC上-按ALT-打印屏幕(或F13)-<command key>,
打印屏幕(或F13)—<命令键>就足够了。
在其他-如果你知道其他架构的关键组合,请
让我知道,这样我就可以把它们添加到本节。
On all-向/proc/sysrq触发器写入一个字符。例如。:
echo t>/proc/sysrq触发器
*什么是“命令”键?
岁~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
“b”-将立即重新启动系统,而无需同步或卸载
你的磁盘。
“c”-将通过空指针取消引用执行系统崩溃。
内核官网