Jak przekazać Ctrl-C do gościa, uruchamiając qemu z opcją -nographic?

11

Skonfigurowałem gruba Qemu w następujący sposób:

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

i uruchom qemuproces z -nographicopcją wiersza poleceń. Umożliwia to użycie bieżącego terminala dla konsoli szeregowej i qemukonsoli monitora. Jednak teraz, za każdym razem, gdy naciskam Ctrl+ Cwewnątrz działającej maszyny wirtualnej, jest ona przechwytywana qemui zamyka proces.

Jak mam przekazać klawisz Ctrl+ Club jakikolwiek inny klawisz związany CTRLz Qemu?

znak
źródło

Odpowiedzi:

16

W swojej powłoce, zanim uruchomisz qemu, uruchom „stty intr ^]”, aby zmienić klucz przerwania z ^ c na ctrl-]

W ten sposób ctrl-c zostanie przekazany do qemu, ale nadal możesz przerwać qemu, naciskając ctrl-]

Michael Brown
źródło
2
Aby przesłonić również Ctrl-Z (tło), istnieje stty susp ^]. W przypadku Ctrl- \ (zamknij) użyj stty quit ^]. W przypadku wielu definicji pojedynczego znaku jest to kolejność pierwszeństwa: intr quit susp.
Lekensteyn,
4

Możesz spróbować użyć sendkeypolecenia za pomocą -monitor stdio. Chociaż najwyraźniej -display none -serial mon:stdioopcja powinna przejść Ctrl+ cdo gościa.

Możesz także utworzyć gniazdo monitora , takie jak to:

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

A następnie podłącz do monitora, aby użyć sendkey w socatnastępujący sposób:

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

Możesz teraz wysłać klucze, w ten sposób:

(qemu) sendkey ctrl-c
sendkey ctrl-c
Criveti Mihai
źródło
Dzięki. Czy możesz mi powiedzieć, jak mogę „wskoczyć” do konsoli monitora qemy (tj. Jaki klawisz powinienem nacisnąć), jeśli uruchomię qemu w terminalu PuTTY?
Mark
W GUI - Ctrl + Alt, a następnie Shift + 2, aby przełączyć na monitor, lub Shift-1, aby przełączyć z powrotem na system operacyjny gościa. To nie działa w konsoli. Tam możesz użyć metody gniazdowej, otworzyć inne screenokno i połączyć się z nim przez socat. Zamiast tego możesz użyć -monitor stdioprzekierowania do terminala.
Criveti Mihai
3

Usuń -monitorlub dodaj-serial mon:stdio

Począwszy od wersji QEMU 2.10.1, Ubuntu 17.10 Ctrl-Cjest domyślnie przekazywany do gościa bez problemu podczas korzystania -nographic.

Jeśli jednak użyjesz tej -monitoropcji, zachowanie się zmieni i Ctrl-Czabije QEMU.

W ten sposób -monitormożna normalnie używać: Jak przełączyć się do panelu sterowania QEMU za pomocą opcji -nographics? | Super użytkownik

Jeśli potrzebujesz -monitor, możesz odzyskać Ctrl + C z powrotem -serial mon:stdio: Jak uruchomić qemu z -nographic i -monitor, ale nadal możesz wysyłać Ctrl + C do gościa i wyjść z Ctrl + AX? | Przepełnienie stosu

Ciro Santilli
źródło