Красноглазый блог

Тогда твоих зрачков опалы,
Как два фонарика, горят,
И ты во мгле в мой взгляд усталый
Свой пристальный вперяешь взгляд.
© Шарль Бодлер
      ____,,,,,,,,,,,,,,,__                                                                                                    __,,,,,,,,,,,,,,,____      
_,,ooOO@@@@@O***OO@@@@@@@@@@@Ooo,,,                                                                                    ,,,ooO@@@@@@@@@@@OO***O@@@@@OOoo,,_
@''`` /''```      ```''''@@@@@@@@@@Ooo,,                                                                          ,,ooO@@@@@@@@@@''''```      ```''\ ``''@
`@,  /                     ____...'@@@@@Ooo,,                                                                ,,ooO@@@@@'...____                     \  ,@`
 `@o,|                  ,`xxxxxxxxxxxxxo@@@@@Oo,,                                                        ,,oO@@@@@oxxxxxxxxxxxxx`,                  |,o@` 
  `@@,                ,`xxxxxxxxxxxxxxxxxx\'o@@@@Oo,,                                                ,,oO@@@@o'/xxxxxxxxxxxxxx###x`,                ,@@`  
   `@@o,             /xxxxxxxxxxxxxxxxx###x\ '`o@@@@@Oo,                                          ,oO@@@@@o`' /xxxxxxxxxxxxxx#####xx\             ,o@@`   
    `@@@o,          /xxxxxxxxx      xx#####x\   '`o@@@@@Oo,                                    ,oO@@@@@o`'   /xxxxxxxx      xx###xxxx\          ,o@@@`    
     `@@@@o,       |xxxxxxxx       #  x###xxx|       `o@@@@o,                                ,o@@@@o`       |xxxxxxx      #   xxxxxxxx|       ,o@@@@`     
       `@@@@o,     |xxx#xxxx  ,       xxxxxxx|          `o@@@o,                            ,o@@@o`          |xxx#xxx  ,       xxxxxxxx|     ,o@@@@`       
         '@@@@@@o, ,xxx##xxxxx `    xxxxxxxxx|             `o@@o,                        ,o@@o`             |xx###xxxx `    xxxxxxxxxx, ,o@@@@@@'         
           '@@@@@@@@@@xx####xxxxxxxxxxxxxxxx/                 'o@o,                    ,o@o'                 \xx####xxxxxxxxxxxxxxxx@@@@@@@@@@'           
              `'@@@@@@@@@@@@##xxxxxxxxxxxx/                   | `oo,                  ,oo` |                   \xx#####xxxxxxx@@@@@@@@@@@@'`              
                   `''@@@@@@@@@@@@@xxxxx,'                   /    `o,                ,o`    \                   ',xxxxx@@@@@@@@@@@@@''`                   
                         ```''''@@@@@@@@@@@@oo,,,        ,,,oooo@@@@@                @@@@@oooo,,,        ,,,oo@@@@@@@@@@@@''''```                         
                                    ```''''@@@@@@@@@@@@@@@@@@''```                      ```''@@@@@@@@@@@@@@@@@@''''```                                    

Июнь 17, 2008

Linux Magic System Request Key Hacks

Filed under: Cheats — Метки: — Livid @ 02:17

Совершенно случайно узнал об этой замечательнейшей вещи, не могу не поделиться своим открытием.

Дело в том, что в большинстве дистрибутивов по умолчанию ядро собрано с поддержкой SysRq-команд. В большинстве случаев она так же оказывается включена на все 100%. Но по порядку.

Написано «по мотивам» Linux Kernel Documentation: Linux Magic System Request Key Hacks

Во-первых, команда SysRq посылает запрос напрямую ядру Linux, который оно обработает, если вообще способно что-либо обработать. Это оказывается чертовски полезно в некоторых случаях, примеры которых приведены в конце статьи.

Во-вторых, как их включить или отключить. Помимо CONFIG_MAGIC_SYSRQ=yes/no в конфиге ядра, существует файл /proc/sys/kernel/sysrq, в который можно записать следующие значения (в Hardy по умолчанию стоит 1, другие дистрибутивы пока не проверял):

  1. «0″ – отключить команды SysRq
  2. «1″ – включить все команды SysRq
  3. >1 – битовая маска, разрешающая или запрещающая какую-либо из функций. Подробности можно найти в LKD.

Стоит заметить, что суперпользователь всегда может записать нужную команду в /proc/sysrq-trigger , а эта настройка влияет только на прямой ввод с клавиатуры.

Цифра записывается, например, так:

$ echo 1 > /proc/sys/kernel/sysrq

В-третьих, как этим пользоваться. Пользоваться довольно просто: нажать Alt+SysRq+<Key>, где Key – одна из буквенных клавиш. Или можно записать соответствующий символ в /proc/sysrq-trigger:

$ echo k > /proc/sysrq-trigger

В-четвертых, какие команды есть.

  • ‘b’ – Немедленно перезагружает систему, не останавливая процессы, не синхронизуя и не размонтируя диски, по сути – аналог Ctrl+Alt+Delete в QDOS. Все помнят QDOS?
  • ‘c’    – Перезагружает kexec дабы снять дамп крушения.
  • ‘d’    – Показывает все поддерживаемые локи.
  • ‘e’    – Шлет SIGTERM всем процессам кроме init.
  • ‘f’    – Вызовет функцию oom_kill, которая убьет процессы, получающие ответ «Out of Memory» – для борьбы с «пожирателями памяти»
  • ‘g’    – Используется отладчиком ядра kgdb на платформах ppc и sh.
  • ‘h’     – Отображает ОЧЕНЬ краткую справку (в принципе, любая из неподдержываемых/запрещенных команд выведет справку)
  • ‘i’     – Шлет SIGKILL всем процессам кроме init.
  • ‘k’     – Ключ Безопасного Доступа (SAK) Убивает все программы в текущей виртуальной консоли. Прим.: Есть замечания, см. ниже.
  • ‘m’     – Выведет текущую информацию о памяти в консоль.
  • ‘n’    -Делает задачи реального времени «niceable», то есть, к ним применяются последствия команды nice (см. man nice)
  • ‘o’     -Выключает систему (если поддерживается)
  • ‘p’     -Выводит текущие регистры и флаги в консоль.
  • ‘q’     – Выводит список всех работающих таймеров.
  • ‘r’     – Отключает «сырой» режим клавиатуры и включает режим XLATE.
  • ‘s’     – Попытается синхронизировать все открытые файловые системы.
  • ‘t’     – Выведет список всех текущих задач и их характеристики в консоль.
  • ‘u’     – Попытается перемонтировать все открытые файловые системы в режиме «только чтение»
  • ‘v’    – Dumps Voyager SMP processor info to your console.
  • ‘w’    – Выводит все «блокированные» (непрерываемые) задачи.
  • ‘x’    – Используется интерфейсом xmon на платформах ppc/powerpc.
  • ’0′-’9′ – Устанавливет уровень лога консоли (0 – только PANIC и OOPS, дальше – больше)

Подробнее о том, как этим пользоваться, я расскажу немного позже.

P.S. Кстати для серверов настоятельно рекомендую sysrqd. Сохранит несколько сотен нервных клеток, обещаю. Подробнее – тоже немного позже.

Связанные посты:

  1. Kernel updater
  2. Sysrqd
  3. Kernel updater v2
  4. Зачем нужны SysRq команды
  5. В школы ушел битый Linux

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

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

RSS-лента комментариев к этой записи.

Оставить комментарий

Spam protection by WP Captcha-Free

Powered by WordPress
Creative Commons License
Krasnoglazy Blog by Nikolay "Livid" Yakimov is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.