Зачем нужны SysRq команды
В продолжение статьи о System Request Keys, расскажу, вернее переведу из официальной документации по кернелу, зачем это надо.
Напомню, клавиши нажимаются в последовательности Alt+SysRq(aka PrintScreen)+<Key>, где Key - одна из клавиш буквенно-цифровой клавиатуры.
Итак, попорядку.
- R - unRaw - команда переводит клавиатуру в стандартный режим, что позволяет “оживить” ее, если, скажим, повисли иксы. Очень полезно. Например, помле этого иксы становится можно перезагрузить (Ctrl+Alt+Backspace или перейти в консоль и перезагрузить оттуда, если не получится)
- K - saK - Secure Access Key - “Убивает” все программы в текущей виртуальной консоли. Оказывается полезно при локальном доступе на сервер. Поясню идею: существуют трояны, которые перехватывают управление из login shell и запрашивают логин-пароль дабы отправить их (тем или иным путем) автору. SAK позволяет убивать такие програмы, таки образом, можно удостовериться, что вы вводите пароль именно в login shell, а не куда-то еще. ЗАМЕЧАНИЕ: В действительности, эта команда не является c2-совместимой и не должна считаться таковой.
- B - reBoot - как ясно из названия, перезагружает систему. Немного мягче, чем reset, но все равно требует предварительной синхронизации
- и размонтирования(U) дисков.
- C - Crashdump - можно вручную запустить дамп памяти/регистров, если система “повисла”. Ядро должно быть скомпилировано с включенным CONFIG_KEXEC.
- S - Sync - если система “повисла”, то перед перезагрузкой следует синхронизировать диски. Собственно, это и делает данная команда - синхронизирует, то есть записывает всю готовящуюся к записи информацию, на диски. Это часто спасает от потери данных и необходимости проверки диска. Следует заметить, что синхронизация не завершена, пока на консоли не появятся сообщение “OK” и “Done”.
- U - Umount - полезна в тех же случаях, что и Sync. Обычно при “зависании” перечисленные команды используются в последовательности S, U, B. Опять же, перемонтирование не завершено, пока на консоли не появятся сообщение “OK” и “Done”.
- 0-9 - уровни лога - оказывается полезно, если консоль засыпается сообщениями, которые вы видеть не хотите. 0 сделает так, что ыводиться будут только Kernel Oops, Kernel Panic.
- E, I - tErm и kIll - хороши при зависании, если какой-то процесс не завершается другим образом, особенно, если он еще и создает дочерние процессы.
Перечисленное используется, помимо описанных способов, еще в качестве широко распространенных “заклинаний”: REISUB и REISUO. Первое тактично и деликатно перезагружает систему, второе - выключает. Приминения первого очевидны, второе полезно, если вы, скажем, не хотите вводить N-значный пароль, а систему надо выключить для втыкания новой железки, и тп.
Вводятся “заклинания” медленно, где-то клаиша в секунду. Если открыта консоль, можно ориентироваться по ней. Если же вдруг система намертво повисла… ну, тут без вариантов, ориентируйтесь на интуицию.
В следующей статье на тему, я расскажу о sysrqd.