Як передати Ctrl-C гостю під час запуску qemu з -nographic?


11

Я налаштував грубку Qemu таким чином:

GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial"
GRUB_CMDLINE_LINUX="..console=ttyS0"

і запустіть qemuпроцес за допомогою параметра -nographicкомандного рядка. Це дозволяє використовувати поточний термінал для послідовної консолі та qemuконсолі монітора. Однак зараз, коли я натискаю Ctrl+ Cвсередині запущеної VM, він перехоплюється qemuі вимикає процес.

Як я повинен пройти Ctrl+ Cабо будь-який інший набір клавіш, що стосується CTRLQemu?

Відповіді:


16

Перед тим, як запустити qemu, запустіть "stty intr ^]", щоб змінити ключ переривання з ^ c на ctrl-]

Таким чином, ctrl-c буде передано qemu, але ви все одно можете перервати qemu, натиснувши ctrl-]


2
Для того, щоб перекрити Ctrl-Z (фонове зображення) теж є stty susp ^]. Для Ctrl- \ (вийти), використовуйте stty quit ^]. З декількома визначеннями для одного знака це порядок пріоритетності: intr quit susp.
Лекенштейн

4

Ви можете спробувати скористатися sendkeyкомандою за допомогою -monitor stdio. Хоча, мабуть, -display none -serial mon:stdioваріант повинен перейти Ctrl+ cдо гостя.

Ви також можете створити розетку для монітора , наприклад:

qemu -display none -monitor unix:/tmp/qemu-monitor,server,nowait

А потім підключіться до монітора, щоб використовувати sendkey з socatтаким чином:

socat - UNIX-CONNECT:/tmp/qemu-monitor

Тепер ви можете надіслати свої ключі, наприклад:

(qemu) sendkey ctrl-c
sendkey ctrl-c

Дякую. Чи можете ви сказати мені, як я можу "перестрибнути" в консоль монітора qemy (тобто який натискання клавіші потрібно натиснути), якщо запускати qemu в терміналі PuTTY?
Марк

У графічному інтерфейсі - Ctrl + Alt, потім Shift + 2 для переходу на монітор, або Shift-1 для повернення до гостьової ОС. Це не працює в консолі. Там ви можете скористатися підходом до розетки та відкрити інше screenвікно та підключитися до нього через socat. Ви також можете використовувати -monitor stdioдля переадресації на свій термінал.
Criveti Mihai

3

Видаліть -monitorабо додайте-serial mon:stdio

Станом на QEMU 2.10.1, Ubuntu 17.10, Ctrl-Cза замовчуванням передається гостю без проблем під час використання -nographic.

Однак якщо ви також використовуєте цю -monitorопцію, поведінка змінюється, а Ctrl-Cнатомість вбиває QEMU.

Ось як -monitorзазвичай використовується: Як перейти на панель управління QEMU за допомогою -nographics? | Супер Користувач

Якщо вам потрібно -monitor, ви можете повернути Ctrl + C за допомогою -serial mon:stdio: Як запустити qemu за допомогою -nographic та -monitor, але все-таки матимете змогу відправити Ctrl + C до гостя та вийти з Ctrl + AX? | Переповнення стека

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.