If you are working on kernel development, or device drivers, or running a code that could cause a kernel panic, the SysRq key will be very valuable. 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.
It is often used to recover from freezes or to reboot a computer without corrupting the filesystem. The key combination consists of Alt+SysRq+commandkey. In many systems, the SysRq key is the PrintScreen key.
First, you need to enable the SysRq key, as shown below.
echo "1" > /proc/sys/kernel/sysrq
List of SysRq Command Keys
Following are the command keys available for Alt+SysRq+commandkey.
- ‘k’ – Kills all the process running on the current virtual console.
- ‘s’ – This will attempt to sync all the mounted file system.
- ‘b’ – Immediately reboot the system, without unmounting partitions or syncing.
- ‘e’ – Sends SIGTERM to all process except init.
- ‘m’ – Output current memory information to the console.
- ‘i’ – Send the SIGKILL signal to all processes except init
- ‘r’ – Switch the keyboard from raw mode (the mode used by programs such as X11), to XLATE mode.
- ‘s’ – sync all mounted file system.
- ‘t’ – Output a list of current tasks and their information to the console.
- ‘u’ – Remount all mounted filesystems in readonly mode.
- ‘o’ – Shutdown the system immediately.
- ‘p’ – Print the current registers and flags to the console.
- ‘0-9’ – Sets the console log level, controlling which kernel messages will be printed to your console.
- ‘f’ – Will call oom_kill to kill process which takes more memory.
- ‘h’ – Used to display the help. But any other keys than the above listed will print help.
We can also do this by echoing the keys to the /proc/sysrq-trigger file. For example, to re-boot a system you can perform the following.
echo "b" > /proc/sysrq-trigger
Perform a Safe reboot of Linux using Magic SysRq Key
To perform a safe reboot of a Linux computer that hangs up, do the following. This will avoid the fsck during the next re-booting. i.e Press Alt+SysRq+letter highlighted below.
- unRaw (take control of keyboard back from X11,
- tErminate (send SIGTERM to all processes, allowing them to terminate gracefully),
- kIll (send SIGILL to all processes, forcing them to terminate immediately),
- Sync (flush data to disk),
- Unmount (remount all filesystems read-only),
- reBoot.