Intereting Posts
Где zdump получает все эти временные переходы? Лучшее программное обеспечение для словарей для Linux Добавление правил на мой почтовый сервер Команда zmv для переименования файла после сопоставления шаблона Как добавить путь «настраиваемых» каталогов к левой панели в Cinnamon File Manager Использование ACL с несколькими группами по умолчанию диаграмма дерева linux / unix Почему Fedora не запускает мою (проводную) сеть? Как назначить управляющий терминал другому процессу? Невозможно перечислить содержимое каталога с 0755 и принадлежит текущему пользователю как настроить /etc/udev/rules.d/ синтаксис? как конвертировать MOD-файл MOD без потери качества в современный популярный формат для телевизора Автоматическая установка Centos7 (PXE) заканчивается при загрузке в live-DVD-вход Есть ли способ кикнуть kswapd и заставить его обмениваться страницами? Почему установка внешнего жесткого диска вызывает событие UFW?

Какие числовые коды клавиш мне нужно отправить для магической функции sysrq в сеансе VNC?

У меня есть доступ к системной консоли гостя KVM через VNC. Какие кодовые коды мне нужно отправить для последовательности magic sysrq ( Ctrl + Alt + «REISUB») в Linux?

Изменить: в Linux под qemu , запуская showkey и команду sendkey alt-sysrq-h в мониторе QEMU обнаруживают коды клавиш 99 ( SysRq ?), 56 ( Alt ) и 35 ( H ). С помощью команды «Отправка пользовательского ключа UltraVNC Viewer» ни один из этих числовых кодов не вышел правильно при вводе и просмотре через showkey .

Да, это возможно, по крайней мере, из NoVNC с гостем на базе KVM. Хитрость заключается в том, чтобы понять, что VNC построен для X11. Следовательно, на проводе кодами ключей, которые необходимо отправить, являются те, которые используются внутри X11.

В этом конкретном случае использования это:

 0xffe9 --> alt 0xff15 --> sysrq 0x0062 --> b 

источники

  • Спецификация протокола VNC , раздел 6.4.4 стр. 23
  • Коды клавиш X11

Документация для sysrq находится в исходном коде Linux ( https://github.com/torvalds/linux/blob/master/Documentation/sysrq.txt ). Я очень рекомендую вам прочитать его.

Включен ли ключ SysRq?

Во-первых, убедитесь, что использование волшебного ключа SysRq включено:

 $ cat /proc/sys/kernel/sysrq 1 

Если он говорит 0 то SysRq отключается. Вы можете включить его с помощью:

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

И это будет эффективно немедленно. Есть влияние безопасности на включение волшебного ключа, и на веб-сайте TLDP есть хорошая документация .

Основываясь на некоторых раскладках клавиатуры, найденных в википедии . Вы можете попробовать сочетание с PrtScr / Print Screen .

В моей системе: Alt + PrtScr + "OTHER". Это та же последовательность, что описана в этой статье в Википедии .

Получение кода ключа SysRq:

Вы можете запустить showkey для сканирования кодов клавиш / получения scancodes:

 $ showkey -s 0x38 - i'm pressing Alt 0xb8 - releasing Alt 0xe0 0x2a 0xe0 0x37 - print screen 0xe0 0xaa 0xe0 0xb7 - release print screen 0x38 - i'm pressing Alt 0x54 - i'm also pressing print screen 0x23 - letter H 0xa3 - bye bye letter H 0xd4 - releasing print screen 0xb8 - releasing Alt 

0x54 = 84 будет Alt + PrtScr, который становится SysRq .

Подтвердим, что:

 $ getkeycodes Plain scancodes xx (hex) versus keycodes (dec) for 1-83 (0x01-0x53) scancode equals keycode 0x50: 80 81 82 83 99 0 86 87 0x58: 88 117 0 0 95 183 184 185 0x60: 0 0 0 0 0 0 0 0 0x68: 0 0 0 0 0 0 0 0 ... 

Моя система сопоставляет scancode 0x54 с 0x54 99 который является KEY_SYSRQ . Двойная проверка:

 # rpm -ql kernel-headers | grep input.h | xargs grep KEY_SYSRQ /usr/include/linux/input.h:#define KEY_SYSRQ 99 

Полезные комбинации SysRq:

  • Alt + PrtScr + D – это плохой комбо для моей системы и дает мне помощь

     SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E) memory-full-oom-kill(F) kill-all-tasks(I) thaw-filesystems(J) saK show-backtrace-all-active-cpus(L) show-memory-usage(M) nice-all-RT-tasks(N) powerOff show-registers(P) show-all-timers(Q) unRaw Sync show-task-states(T) Unmount show-blocked-tasks(W) dump-ftrace-buffer(Z) 
  • Alt + PrtScr + H – фактическое нажатие клавиши

     SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E) memory-full-oom-kill(F) kill-all-tasks(I) thaw-filesystems(J) saK show-backtrace-all-active-cpus(L) show-memory-usage(M) nice-all-RT-tasks(N) powerOff show-registers(P) show-all-timers(Q) unRaw Sync show-task-states(T) Unmount show-blocked-tasks(W) dump-ftrace-buffer(Z) 
  • Alt + PrtScr + B – перезагрузка
  • Alt + PrtScr + C – сбой системы (с аварийным ударом)
  • Alt + PrtScr + E – SIGTERM для каждой задачи, кроме init
  • Alt + PrtScr + F – вызов OOM-убийцы
  • Alt + PrtScr + M – выводит статистику памяти / свопа
  • Alt + PrtScr + O – выключение питания
  • Alt + PrtScr + Ssync всех смонтированных файловых систем
  • Alt + PrtScr + U – перезагружает все файловые системы как доступные для чтения
  • Alt + PrtScr + T – выводит список задач со следами