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 ケムで?
シェルで、qemuを実行する前に、「stty intr ^]」を実行して、割り込みキーを^ cからctrl-]に変更します
そうすれば、ctrl-cがqemuに渡されますが、ctrl-]を押すことでqemu自体を中断できます。
-monitor stdio
を使用してsendkey
コマンドを試すことができます。どうやら-display none -serial mon:stdio
オプションは Ctrl + c ゲストまで。
次のように、 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
-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