Magic SysRq key

From Wikipedia, the free encyclopedia

The magic SysRq key is a key combination in the Linux kernel which allows the user to perform various low level commands regardless of the system's state using the SysRq key. It is often used to recover from freezes, or to reboot a computer without corrupting the filesystem.

The key combination consists of Alt, SysRq and another key, which controls the command issued:

  • 0 through 9 sets the console log level, which controls the types of kernel messages that are output to the console.
  • b immediately reboots the system, without unmounting partitions or syncing.
  • c reboots kexec and outputs a crashdump.
  • e sends the SIGTERM signal to all processes except init (PID 1).
  • f calls oom_kill, which will kill a process that is consuming all available memory.
  • h, or any key which is not bound to a command, outputs a terse help document to the console.
  • i sends the SIGKILL signal to all processes except init.
  • k kills all processes on the current virtual console (and thus can be used to kill X and svgalib programs). This was originally designed to imitate a Secure Access Key.
  • l sends the SIGKILL signal to all processes, including init.
  • m outputs current memory information to the console.
  • o shuts off the system.
  • p outputs the current registers and flags to the console.
  • r switches the keyboard from raw mode, the mode used by programs such as X11 and svgalib, to XLATE mode.
  • s attempts to sync all mounted filesystems.
  • t outputs a list of current tasks and their information to the console.
  • u attempts to remount all mounted filesystems in read-only mode.
  • v outputs Voyager SMP processor information.

If the machine is headless or is being accessed remotely, magic commands be run on the command line. This is, however, contingent upon being able to shell into the machine. To run magic commands, echo the desired trigger code to the SysRq trigger in the procfs. For example:

echo b > /proc/sysrq-trigger

This is equivalent to the key combination Alt + SysRq + B which reboots the machine.

The feature is controlled both by a compile-time option in the kernel configuration, CONFIG_MAGIC_SYSRQ, and a sysctl kernel parameter, kernel.sysrq. Some distributions only enable the compile-time option, while others, such as Ubuntu, enable the feature by default.[citation needed].

To enable or disable SysRq calls,

echo 0 > /proc/sys/kernel/sysrq

echo 1 > /proc/sys/kernel/sysrq

turn the calls off and on respectively. Selectively enabling commands is also possible.

[edit] Emergency Reboot - Raising Skinny Elephants Is Utterly Boring

"Raising Skinny Elephants Is Utterly Boring" is a mnemonic device for remembering a keystroke sequence that should be used as an alternative to hitting the power button if a linux system should ever "hang" and need to be rebooted.

  1. Alt + SysRq + R -- takes the keyboard out of raw mode
  2. Alt + SysRq + S -- synchronizes the disk
  3. Alt + SysRq + E -- terminates all processes (Except init)
  4. Alt + SysRq + I -- kills all processes (Except init)
  5. Alt + SysRq + U -- remounts all filesystems read-only
  6. Alt + SysRq + B -- reboots the machine

[edit] See also

Wikibooks
Wikibooks Linux Guide has a page on the topic of

[edit] External link

In other languages