web-dev-qa-db-ja.com

-nographicでqemuを実行しているときにCtrl-Cをゲストに渡す方法は?

Qemuのgrubを次のように構成しました。

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

qemuプロセスを-nographicコマンドラインオプション。これらにより、シリアルコンソールおよびqemuモニターコンソールに現在の端末を使用できます。しかし今、私が押すたびに Ctrl+C 実行中のVM内では、qemuによってインターセプトされ、プロセスをシャットダウンします。

どうやって合格するの? Ctrl+C またはその他のキーストローク CTRL ケムで?

11
Mark

シェルで、qemuを実行する前に、「stty intr ^]」を実行して、割り込みキーを^ cからctrl-]に変更します

そうすれば、ctrl-cがqemuに渡されますが、ctrl-]を押すことでqemu自体を中断できます。

16
Michael Brown

-monitor stdioを使用してsendkeyコマンドを試すことができます。どうやら-display none -serial mon:stdioオプションは Ctrlc ゲストまで。

次のように、 monitor ソケットを作成することもできます。

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
4
Criveti Mihai

-monitorを削除するか、-serial mon:stdioを追加します

QEMU 2.10.1、Ubuntu 17.10以降、Ctrl-Cを使用すると、-nographicはデフォルトでゲストに問題なく渡されます。

ただし、-monitorオプションも使用すると、動作が変更され、代わりにCtrl-CがQEMUを強制終了します。

これが-monitorの通常の使用方法です: -nographicsを使用してQEMUコントロールパネルに切り替える方法?|スーパーユーザー

-monitorが必要な場合は、Ctrl + Cを-serial mon:stdioで戻すことができます。 -nographicおよび-monitorを使用してqemuを実行する方法ですが、ゲストにCtrl + Cを送信できます。 Ctrl + AXで終了しますか?| Stack Overflow