среда, 10 сентября 2008 г.

Перезагрузка Linux машины через SysRQ

Иногда возникает ситуация, когда удаленно, по ssh например, нужно перезагрузить linux сервер.
Команды reboot, shutdown не работают так как нужно, то есть просто висят в процессах, но машина не уходит в перезагрузку.

Такое часто бывает, когда отказывает диск, или начинаются проблемы с RAID массивом.
Для форсирования перезагрузки сервера нам подойдет sysrq.

Для начала включаем sysrq через proc:

echo 1 > /proc/sys/kernel/sysrq

Далее посылаем нужную команду в sysrq триггер:

echo b > /proc/sysrq-trigger

Как показывает практика, машина мгновенно уходит в reboot.

Все команды совпадают с сочетаниями клавиш:
"ALT + SysReq + r" - перевести клавиатуру в Raw режим.
"ALT + SysReq + s" - сбросить буферы FS на диск (может занять много времени, если система сильно загружена).
"ALT + SysReq + e" - отправить сигнал завершения работы процессам.
"ALT + SysReq + i" - принудительно убить процессы не желающие завершить работу по сигналу KILL.
'ALT + SysReq + u' - отмонтировать дисковые разделы.
'ALT + SysReq + b' - перезагрузить машину.

Комментариев нет: