Magic SysRq key

The magic SysRq key is a key combination understood by the Linux kernel, 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 a computer without corrupting the filesystem. Its effect is similar to the computer's hardware reset button (or power switch) but with many more options and much more control.
This key combination provides access to powerful features for software development and disaster recovery. In this sense, it can be considered a form of escape sequence. Principal among the offered commands are means to forcibly unmount file systems, kill processes, recover keyboard state, and write unwritten data to disk. With respect to these tasks, this feature serves as a tool of last resort.
The magic SysRq key cannot work under certain conditions, such as a kernel panic or a hardware failure preventing the kernel from running properly.
Commands.
The key combination consists of (for Linux Mint, the combination is ) 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 keyboard layout; for example, on the Dvorak keyboard layout, 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. Thinkpad Carbon X1 the is activated by pressing simultaneously, then releasing and while still holding (see here).
SysRq functionalities can also be accessed without a keyboard. See below.
Output of the SysRq on a x86_64 kernel:
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)
Uses.
A common use of the magic SysRq key is to perform a safe reboot of a Linux computer which has otherwise locked up (abbr. REISUB). This can prevent a being required on reboot and gives some programs a chance to save emergency backups of unsaved work. The QWERTY (or AZERTY) mnemonics: "aising lephants s o tterly oring", "eboot ven f ystem tterly roken" or simply the word "BUSIER" read backwards, are often used to remember the following SysRq-keys sequence:
When magic keys are used to kill a frozen graphical program, the program has no chance to restore text mode. This can make everything unreadable. The commands (part of SVGAlib) and the command can restore text mode and make the console readable again.
On distributions that do not include a command, the key command may sometimes be able to force a return to a text console. (Use , , , ... , , where is the highest number of text consoles set up by the distribution. would normally be used to reenter GUI mode on a system on which the X server has not crashed.) There are also distributions where + (, ... ,) opens text consoles, reenter GUI mode, reenter GUI mode on the login page, in order to log in another user.
Configuration.
The feature is controlled both by a compile-time option in the kernel configuration, , and a sysctl 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 .
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 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.
Chromebooks have a keyboard but no dedicated SysRq key. They use () instead, however some keys have a different function.
IBM Power Systems 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 console.