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


11

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

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

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

Qemuに関係するCtrl+ Cまたはその他のキーストロークをどのように渡すCTRLべきですか?

回答:


16

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

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


2
Ctrl-Z(バックグラウンド)もオーバーライドするには、がありstty susp ^]ます。Ctrl- \(終了)の場合は、を使用しますstty quit ^]。単一の文字に対して複数の定義がある場合、これは優先順位です:intr quit susp。
Lekensteyn

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

ありがとう。PuTTY端末でqemuを実行する場合、qemyモニターコンソールにどのように「ジャンプ」できるか(つまり、どのキーストロークを押す必要があるか)を教えてください。
マーク

GUIでは、Ctrl + Altを押してからShift + 2でモニターに切り替えるか、Shift-1でゲストOSに切り替えます。これはコンソールでは機能しません。そこで、ソケットアプローチを使用し、別のscreenウィンドウを開いて、を介してそれに接続できsocatます。-monitor stdio代わりにを使用して端末にリダイレクトすることもできます。
Criveti Mihai 2014

3

削除-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キー+ AXでゲストにはCtrl + Cを送信して終了することができますか?| スタックオーバーフロー

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.