SysRQ is a key on your keyboard. If you don’t see it, chances are your PrtSc key doubles as it. The insert key and PrtSc/SysRQ key are usually right next to each other, near where your numpad would be.
SysRQ is the magic key (that is even what it is called in the Linux kernel). You can use it to send messages directly to the kernel. Here are some situations where you might want to do that:
The reason you would not want to hard power off the machine is because that surprises the OS. If the OS is in the middle of writing to disk for example, it could corrupt the filesystem (which is not good at all)! SysRQ comes in handy, because it talks directly to the Linux kernel. So, even if everything on your system is locked up, you can still communicate directly to the Linux kernel, with SysRQ. SysRQ allows you to reboot your computer correctly.
In order to use it, we must make sure the system is configured to use
it. You can make sure by reading the output of this command:
cat /proc/sys/kernel/sysrq
If the output is:
1: Enabled, and you can skip to section 5.
Not 1: Not enabled, and you have some work to do.
You can enable SysRQ with a simple command… sort of, see, you can
enable it with this command as root:
echo 1 > /proc/sys/kernel/sysrq
But the issue is that
this does not persist after a reboot! If you want to have your changes
stay even after rebooting, you will have to run this at startup.
Depending on the distro, there are different ways to do this:
Generic Distros: You can enable SysRQ even after reboot with this
simple command as root:
echo "kernel.sysrq = 1" >> /etc/sysctl.d/99-sysctl.conf
NixOS: You can do this on NixOS by adding one line to configuration.nix
in the global scope:
boot.kernel.sysctl."kernel.sysrq" = 1;
I mentioned earlier that all most people are gonna use SysRQ for is rebooting their machine properly if it freezes. If you want to do this, you have to remember 6 letters: REISUB A good way to remember these is to remember: [R]eboot [E]ven [I]f [S]ystem [U]tterly [B]roken
If you want to actually do this, what you need to do is hold down the ALT key, and the SysRQ key down at the same time. Once you are holding them down, you want to press the first or next queued letter. And, you need to release the ALT and SysRQ keys after every letter (command) pressed. So, you would end up holding down ALT + SysRQ 6 times during the REISUB sequence. I repeat, you can not enter multiple letters without releasing your fingers from ALT + SysRQ, then putting them back down!
What REISUB is doing:
R: Turns off keyboard raw mode, and sets it to XLATE.
E: Send a SIGTERM to all processes, except for init.
I: Send a SIGKILL to all processes, except for init.
S: Will attempt to sync all mounted filesystems.
U: Will attempt to re-mount all mounted filesystems as read-only.
B: Reboot!
No, I watched a Chris Titus Tech video about it.
Definitely one of his few good videos.