Иногда сервер зависает настолько неприятно, что обычные команды:
reboot
shutdown -r now
systemctl reboot
либо не отрабатывают, либо висят вместе со всей системой. В таких случаях у Linux есть более низкоуровневый механизм - Magic SysRq.
▪️ Одна из самых известных команд:
echo b > /proc/sysrq-trigger
Она отправляет команду на перезагрузку напрямую ядру. По эффекту это примерно как нажать аппаратный Reset.
⚠️ Важно понимать: это нештатная перезагрузка.
▪️ Команда:
• не завершает процессы корректно;
• не размонтирует файловые системы;
• не делает sync;
• не ждет systemd;
• практически сразу перезапускает машину.
Именно поэтому она может помочь там, где обычный reboot уже не работает.
Если shell уже открыт, запись в
/proc/sysrq-trigger может сработать даже в довольно поврежденной системе.▪️ Проверить состояние SysRq:
cat /proc/sys/kernel/sysrq
0 - SysRq отключен
1 - разрешены все функции
>1 - разрешена только часть функций по битовой маске
▪️ Полный список доступных команд можно запросить так:
echo h > /proc/sysrq-trigger
Подсказка обычно попадет в kernel log:
journalctl -k
или:
dmesg
▪️ Кроме b, есть и другие полезные команды. Например:
echo s > /proc/sysrq-trigger
пытается синхронизировать файловые системы.
echo u > /proc/sysrq-trigger
пытается перемонтировать файловые системы в read-only.
И только потом:
echo b > /proc/sysrq-trigger
Есть даже известная последовательность: REISUB, где поэтапно пытаются вернуть управление клавиатурой, завершить процессы, синхронизировать диски, перемонтировать FS в read-only и только затем перезагрузиться.
#linux #reboot
🧑💻 NetworkAdmin