
The magic SysRq key is a key combination understood by the
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
, which allows the user to perform various low-level commands regardless of the system's state. It is often used to recover from
freezes, or to
reboot
In computing, rebooting is the process by which a running computer system is restarted, either intentionally or unintentionally. Reboots can be either a cold reboot (alternatively known as a hard reboot) in which the power to the system is physi ...
a computer without corrupting the
filesystem.
This key combination provides access to features for disaster recovery. In this sense, it can be considered a form of
escape sequence
In computer science, an escape sequence is a combination of characters that has a meaning other than the literal characters contained therein; it is marked by one or more preceding (and possibly terminating) characters.
Examples
* In C and ma ...
. Principal among the offered commands are means to forcibly unmount file systems, kill processes, recover keyboard state, and write unwritten data to disk.
The magic SysRq key cannot work under certain conditions, such as a
kernel panic
A kernel panic (sometimes abbreviated as KP) is a safety measure taken by an operating system's Kernel (operating system), kernel upon detecting an internal Fatal system error, fatal error in which either it is unable to safely recover or con ...
or a hardware failure preventing the kernel from running properly.
Implementation
The Linux kernel contains
sysrq.c
, which implements magic SysRq functionality. Magic SysRq functionality is called by serial devices
at a low level in the driver code.
Commands
The key combination consists of and another key, which controls the command issued. may be released before pressing the command key, as long as remains held down.
The combinations always assume the
QWERTY
QWERTY ( ) is a keyboard layout for Latin-script alphabets. The name comes from the order of the first six Computer keyboard keys#Types, keys on the top letter row of the keyboard: . The QWERTY design is based on a layout included in the Sh ...
keyboard layout. For example, on the
Dvorak keyboard layout
Dvorak () is a keyboard layout for English patented in 1936 by August Dvorak and his brother-in-law, William Dealey, as a faster and more ergonomic alternative to the QWERTY layout (the ''de facto'' standard keyboard layout). Dvorak proponen ...
, the combination to shut down the system uses the key instead of . Furthermore, some keyboards may not provide a separate key. In this case, a separate key should be present.
On some devices, notably laptops, the key may need to be pressed to use the magic key, e.g. on Thinkpad Carbon X1 the is activated by pressing simultaneously, then releasing and while still holding .
SysRq functionalities can also be accessed without a keyboard. See below. Note that some commands may be disabled out of the box as specified in the
bitmask
In computer science, a mask or bitmask is data that is used for bitwise operations, particularly in a bit field. Using a mask, multiple bits in a byte, nibble, word, etc. can be set either on or off, or inverted from on to off (or vice versa) in ...
value in
/proc/sys/kernel/sysrq
.
Example output of the command:
sysrq: HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r) sync(s) show-task-states(t) unmount(u) force-fb(v) show-blocked-tasks(w) dump-ftrace-buffer(z) dump-sched-ext(D) replay-kernel-logs(R) reset-sched-ext(S)
Configuration
The feature is controlled both by a
compile-time option in the kernel configuration, ,
and a
sysctl
sysctl is a software mechanism in some Unix-like operating systems that reads and modifies the attributes of the system kernel such as its version number, maximum limits, and security settings. It is available both as a system call for compile ...
kernel parameter, .
On newer kernels (since 2.6.12), it is possible to have more fine-grained control over how the magic SysRq key can be used. On these machines, the number written to can be 0, 1, or a number greater than 1 which is a bitmask indicating which features to allow. On Ubuntu this is set at boot time to the value defined in .
Uses
Before the advent of
journaled filesystems a common use of the magic SysRq key was to perform a safe reboot of a locked-up Linux computer (using the sequence of key presses indicated by the mnemonic REISUB), which lessened the risk of filesystem corruption. With modern filesystems, syncing and unmounting is still useful to force unflushed data to disk, but is no longer necessary to prevent filesystem corruption (and may increase the risk of corruption in case the lock-up is caused by the kernel being in a bad state). The default value of ''kernel.sysrq'' in distributions such as Ubuntu and Debian remains 176 (allowing the sync, unmount, and reboot functions) and 438 (allowing the same functions plus loglevel, unraw, and nice-all-RT-tasks) respectively.
Another past use was to kill a frozen
graphical program, as the
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
used to have complete control over the graphical mode and input devices.
On distributions that do not include a command, the key sequence may be able to force a switch to a text console. Some systems may require use of or instead of .
Other ways to invoke Magic SysRq
While the magic SysRq key was originally implemented as part of the kernel's keyboard handler for debugging, the functionality has been also exposed via the
proc filesystem and is commonly used to provide extended management capabilities to headless and remote systems. From user space programs (such as a command line shell), SysRq may be accessed by writing to (e.g., ).
Many embedded systems have no attached keyboard, but instead use a serial console for text input/output to the running system. It is possible to invoke a Magic SysRq feature over a serial console by sending a
serial break signal, followed by the desired key. The method of sending a break is dependent on the terminal program or hardware used to connect to the serial console. A
sysctl
sysctl is a software mechanism in some Unix-like operating systems that reads and modifies the attributes of the system kernel such as its version number, maximum limits, and security settings. It is available both as a system call for compile ...
option needs to be set to enable this function.
The Linux daemons and provide a method of accessing SysRq features over a TCP connection after authenticating with a plain-text password. The daemon will invoke pre-configured SysRq triggers when system
load average exceeds a certain threshold.
The
Xen hypervisor has functionality to send magic commands to hosted domains via its command. Additionally, a SysRq command can be invoked from a Xen paravirtual console by sending a break sequence followed by the desired key.
The
Kernel-based_Virtual_Machine
Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the Kernel (operating system), kernel to function as a hypervisor. It was merged into the Mainline Linux, mainline Linux kernel i ...
(KVM) hypervisor has functionality to send magic commands to hosted domains via its command.
eg:
virsh send-key --domain domainname --keycode KEY_LEFTALT KEY_SYSRQ KEY_S
Chromebook
Chromebook (sometimes stylized in lowercase as chromebook) is a line of laptops, desktops, tablets and all-in-one computers that run ChromeOS, a proprietary operating system developed by Google.
Chromebooks are optimised for web access. They al ...
s have a keyboard but no dedicated SysRq key. They use () instead, however some keys have a different function.
IBM
Power Systems
IBM Power Systems is a family of server computers from IBM that are based on its Power processors. It was created in 2008 as a merger of the System p and System i product lines.
History
IBM had two distinct POWER- and PowerPC-based hardwar ...
servers can invoke the Magic SysRq feature using followed by the desired key from the
Hardware Management Console.
IBM mainframe partitions can invoke the Magic SysRq feature using followed by the desired key on
3270 or HMC.
See also
*
Stop-A, key sequence used to access
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
's
Open Firmware
Open Firmware is a standard defining the interfaces of a computer firmware system, formerly endorsed by the Institute of Electrical and Electronics Engineers (IEEE). It originated at Sun Microsystems where it was known as OpenBoot, and has bee ...
(OpenBoot)
*
Console server
A terminal server connects devices with a serial port to a local area network (LAN). Products marketed as terminal servers can be very simple devices that do not offer any security functionality, such as data encryption and user authentication. ...
*
KVM switch
A KVM switch (with KVM being an abbreviation for "keyboard, video, and mouse") is a hardware device that allows a user to control multiple computers from one or more sets of keyboards, video monitors, and mouse.
Name
Switches to connect ...
*
System console
A computer terminal is an electronic or electromechanical computer hardware, hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. Most early computers only had a front panel to ...
References
External links
*
*
*
*
*{{cite web , url=http://www.ibm.com/developerworks/linux/library/l-magic.html , title= Magic sys request , publisher=
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
, work = Developer works , first= Tom , last= Gall , date= 2000-04-01 , archiveurl= https://web.archive.org/web/20070527215139/http://www.ibm.com/developerworks/linux/library/l-magic.html , archivedate= 2007-05-27 , url-status= dead , accessdate= 2013-09-03
Linux kernel features
System administration
Out-of-band management