Force hard reboot without physically accessing the computer
Sometimes a zombie process might prevent “reboot” “shutdown -r now” from working properly since such soft reboot methods will try to close the zombie processes “normally” and stall on permanent waiting. In this case, instead of approaching the computer and press the power button, there is a way to do so remotely if you still have a remote login session alive:
echo b > /proc/sysrq-trigger
Other sysrp-trigger options:
1. You need to enable the feature with e.g.:
echo 1 > /proc/sys/kernel/sysrq
If that file doesn’t exist, the kernel was built without SysRq support
([CONFIG_]MAGIC_SYSRQ).
2. You need to use Alt+PrtSc+, where is one of those listed
in /usr/src/linux/Documentation/sysrq.txt:
‘r’ – Turns off keyboard raw mode and sets it to XLATE.
‘k’ – Secure Access Key (SAK) Kills all programs on the current virtual
console. NOTE: See important comments below in SAK section.
‘b’ – Will immediately reboot the system without syncing or unmounting
your disks.
‘o’ – Will shut your system off (if configured and supported).
‘s’ – Will attempt to sync all mounted filesystems.
‘u’ – Will attempt to remount all mounted filesystems read-only.
‘p’ – Will dump the current registers and flags to your console.
‘t’ – Will dump a list of current tasks and their information to your
console.
‘m’ – Will dump current memory info to your console.
‘v’ – Dumps Voyager SMP processor info to your console.
‘0’-‘9’ – Sets the console log level, controlling which kernel messages
will be printed to your console. (‘0’, for example would make
it so that only emergency messages like PANICs or OOPSes would
make it to your console.)
‘e’ – Send a SIGTERM to all processes, except for init.
‘i’ – Send a SIGKILL to all processes, except for init.
‘l’ – Send a SIGKILL to all processes, INCLUDING init. (Your system
will be non-functional after this.)
‘h’ – Will display help ( actually any other key than those listed
above will display help. but ‘h’ is easy to remember 🙂