Wie übergebe ich Strg-C an den Gast, wenn qemu mit -nographic ausgeführt wird?

11

Ich habe Qemus Grub folgendermaßen konfiguriert:

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

und führen Sie den qemuProzess mit der -nographicBefehlszeilenoption aus. Dadurch kann das aktuelle Terminal für die serielle Konsole und die qemuMonitorkonsole verwendet werden. Jedes Mal, wenn ich in der laufenden VM Ctrl+ drücke C, wird diese abgefangen qemuund der Prozess wird beendet.

Wie soll ich Ctrl+ Coder einen anderen Tastendruck CTRLin Qemu bestehen?

Kennzeichen
quelle

Antworten:

16

Führen Sie in Ihrer Shell "stty intr ^]" aus, bevor Sie qemu ausführen, um den Interrupt-Schlüssel von ^ c in ctrl-] zu ändern.

Auf diese Weise wird Strg-C an qemu weitergeleitet, aber Sie können qemu selbst trotzdem unterbrechen, indem Sie Strg-] drücken.

Michael Brown
quelle
2
Um auch Strg-Z (Hintergrund) zu überschreiben, gibt es stty susp ^]. Verwenden Sie für Strg- \ (Beenden) stty quit ^]. Bei mehreren Definitionen für ein einzelnes Zeichen ist dies die Rangfolge: intr quit sus.
Lekensteyn
4

Sie können versuchen, den sendkeyBefehl mit zu verwenden -monitor stdio. Obwohl anscheinend die -display none -serial mon:stdioOption Ctrl+ can den Gast weitergeben sollte.

Sie können auch eine Monitorbuchse wie folgt erstellen :

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

Stellen Sie dann eine Verbindung zum Monitor her, um sendkey socatwie folgt zu verwenden :

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

Sie können Ihre Schlüssel jetzt wie folgt senden:

(qemu) sendkey ctrl-c
sendkey ctrl-c
Criveti Mihai
quelle
Vielen Dank. Können Sie mir sagen, wie ich in die qemy-Monitorkonsole springen kann (dh welchen Tastendruck soll ich drücken), wenn ich qemu im PuTTY-Terminal ausführe?
Mark
In der GUI - Strg + Alt, dann Umschalt + 2, um zum Monitor zu wechseln, oder Umschalt-1, um zum Gastbetriebssystem zurückzukehren. Das funktioniert in der Konsole nicht. Dort können Sie den Socket-Ansatz verwenden, ein weiteres screenFenster öffnen und über eine Verbindung herstellen socat. Sie können -monitor stdiostattdessen auch eine Umleitung zu Ihrem Terminal verwenden.
Criveti Mihai
3

Entfernen -monitoroder hinzufügen-serial mon:stdio

Ab QEMU 2.10.1 wird Ubuntu 17.10 Ctrl-Cbei der Verwendung standardmäßig ohne Probleme an den Gast übergeben -nographic.

Wenn Sie jedoch auch die -monitorOption verwenden, ändert sich das Verhalten und die Ctrl-CQEMU wird beendet.

Dies wird -monitornormalerweise verwendet: Wie wechselt man mit -nographics zum QEMU-Bedienfeld? | Super User

Bei Bedarf -monitorkönnen Sie Strg + C zurückerhalten mit -serial mon:stdio: Wie kann man qemu mit -nographic und -monitor ausführen, aber trotzdem Strg + C an den Gast senden und mit Strg + AX ​​beenden? | Paketüberfluss

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
quelle