Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1789983
  • 博文数量: 297
  • 博客积分: 285
  • 博客等级: 二等列兵
  • 技术积分: 3006
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-06 22:04
个人简介

Linuxer, ex IBMer. GNU https://hmchzb19.github.io/

文章分类

全部博文(297)

文章存档

2020年(11)

2019年(15)

2018年(43)

2017年(79)

2016年(79)

2015年(58)

2014年(1)

2013年(8)

2012年(3)

分类: LINUX

2016-08-11 15:01:21

原文地址在此:
The "Magic Sysrequest key" is Alt (left or right Alt key) and Sysrq (up there under Print Screen, next to F12 on most keyboards). To use it, you need to have it enabled in your kernel (CONFIG_MAGIC_SYSRQ). It usually is; if you have a file called '/proc/sys/kernel/sysrq' you have this. To ENABLE the magic functions, you need a "1" in that file. If it has 0, Alt-SysRq just returns you to the previous console you were using.
You do NOT want this enabled on any machine that the public can walk up to. With this enabled, pressing Alt, SysRq and another key all at the same time can do things like immediately reboot the whole box - and all it takes is the keyboard, no login required. That's all three keys held down - don't release Alt-SysRq before pressing the other key (right, it's not supposed to be easy to do)

The capabilities should be documented in "man proc", but (at least on my system) are not. The "sysrq" is mentioned, but not documented. You can find documentation in /usr/src/linux-2.4.29/Documentation/sysrq.txt if you have source installed. This is from that file:
'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 :-)

The key is also self-documenting: doing Alt-Sysrq-h (or any other unrecognized key) prints out a HELP message that briefly reminds you of the above functions.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
后记: 我在 Ubuntu 14.04.3 LTS 上找了个kernel 代码来重新翻了下这个txt,内容变化不算大,我用的是3.13 版本的kernel 。

点击(此处)折叠或打开

  1. apt-get source linux-image-3.13.0-27-generic
  2. updatedb
  3. locate sysrq.txt
但是多了些内容。

点击(此处)折叠或打开

  1. You need to say "yes" to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when
  2. configuring the kernel. When running a kernel with SysRq compiled in,
  3. /proc/sys/kernel/sysrq controls the functions allowed to be invoked via
  4. the SysRq key. The default value in this file is set by the
  5. CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE config symbol, which itself defaults
  6. to 1. Here is the list of possible values in /proc/sys/kernel/sysrq:
  7.    0 - disable sysrq completely
  8.    1 - enable all functions of sysrq
  9.   >1 - bitmask of allowed sysrq functions (see below for detailed function
  10.        description):
  11.           2 = 0x2 - enable control of console logging level
  12.           4 = 0x4 - enable control of keyboard (SAK, unraw)
  13.           8 = 0x8 - enable debugging dumps of processes etc.
  14.          16 = 0x10 - enable sync command
  15.          32 = 0x20 - enable remount read-only
  16.          64 = 0x40 - enable signalling of processes (term, kill, oom-kill)
  17.         128 = 0x80 - allow reboot/poweroff
  18.         256 = 0x100 - allow nicing of all RT tasks

我这个Ubuntu的虚拟机是176,也即是enable了某一些特定的功能

点击(此处)折叠或打开

  1. cat /proc/sys/kernel/sysrq
  2. 176=128+32+16
  3. 128 = 0x80 - allow reboot/poweroff
  4. 32 = 0x20 - enable remount read-only
  5. 16 = 0x10 - enable sync command

阅读(1448) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~