System Request в Linux
LinuPark 🧙♂️
Повисла машина? В целом есть шанс что-то спасти...
В Linux существует особый механизм управления системой - System Request (или SysRq). Способ взаимодействия с ядром Linux, позволяющий выполнять критические операции в экстренных ситуациях. Он работает напрямую с ядром, минуя обычные пути управления системой.
Статус режима SysRq отображается в файле /proc/sys/kernel/sysrq
cat /proc/sys/kernel/sysrq
0 - выключен
1 - включен
16 - разрешена команда синхронизации
32 - разрешена команда перемонтировать файловые системы в ro
128 - разрешены перезагрузка и отключение питания
176 - сумма трёх разрешений 16 + 32 + 128
Меняем статус отправляем соответствующую цифру в файл
echo '1' > /proc/sys/kernel/sysrq
⚠️ Перед выполнением убедитесь, что клавиатура захвачена консолью, иначе SysRq выполнится на рабочей станции
Основные комбинации клавиш SysRq (Print Screen):
Alt + SysRq + h — показывает список всех доступных команд
Alt + SysRq + s — синхронизирует файловые системы
Alt + SysRq + u — переводит файловые системы в режим только для чтения (ro)
Alt + SysRq + b — перезагружает систему
Alt + SysRq + r — разблокирует клавиатуру
Alt + SysRq + e — отправка сигнала завершения процессам
Alt + SysRq + i — принудительное завершение процессов
⚠️ Используйте System Request только в случае крайней необходимости, чтобы избежать потери данных, так как системы защиты в данном случае не предусмотрено.
Последовательность действий при зависании системы
Alt + SysRq + r - разблокирует клавиатуру
Alt + SysRq + e - отправка сигнала завершения процессам
Alt + SysRq + i - принудительное завершение процессов
Alt + SysRq + s - синхронизирует файловые системы
Alt + SysRq + u - переводит файловые системы в режим только для чтения
Alt + SysRq + b - перезагружает систему