¿Cómo pasar Ctrl-C al invitado cuando ejecuta qemu con -nographic?

11

Configuré la comida de Qemu de la siguiente manera:

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

y ejecuta el qemuproceso con la -nographicopción de línea de comando. Esto permite utilizar el terminal actual para la consola serie y la qemuconsola del monitor. Sin embargo, ahora, cada vez que presiono Ctrl+ Cdentro de la VM en ejecución, es interceptada por qemuy cierra el proceso.

¿Cómo se supone que debo pasar Ctrl+ Co cualquier otra pulsación de tecla relacionada CTRLcon Qemu?

marca
fuente

Respuestas:

16

En su shell, antes de ejecutar qemu, ejecute "stty intr ^]" para cambiar la tecla de interrupción de ^ c a ctrl-]

De esa forma, ctrl-c pasará a qemu, pero aún puede interrumpir qemu presionando ctrl-]

Michael Brown
fuente
2
Para anular Ctrl-Z (fondo) también, existe stty susp ^]. Para Ctrl- \ (salir), use stty quit ^]. Con múltiples definiciones para un solo carácter, este es el orden de precedencia: intr quit susp.
Lekensteyn
4

Puedes intentar usar el sendkeycomando usando -monitor stdio. Aunque aparentemente la -display none -serial mon:stdioopción debería pasar Ctrl+ cal invitado.

También puede crear una toma de monitor , como esta:

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

Y luego, conéctese al monitor para usar sendkey con socateste:

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

Ahora puede enviar sus llaves, así:

(qemu) sendkey ctrl-c
sendkey ctrl-c
Criveti Mihai
fuente
Gracias. ¿Podría decirme cómo puedo 'saltar' a la consola del monitor qemy (es decir, qué pulsación de teclas debo presionar), si ejecuto qemu en el terminal PuTTY?
Mark
En GUI: Ctrl + Alt, luego Shift + 2 para cambiar al monitor, o Shift-1 para volver al sistema operativo invitado. Eso no funciona en la consola. Allí puede usar el enfoque de socket y abrir otra screenventana y conectarse a ella a través de socat. También puede utilizar -monitor stdiopara redirigir a su terminal en su lugar.
Criveti Mihai
3

Eliminar -monitoro agregar-serial mon:stdio

A partir de QEMU 2.10.1, Ubuntu 17.10, Ctrl-Cse pasa por defecto al invitado sin problemas al usarlo -nographic.

Sin embargo, si también usa la -monitoropción, el comportamiento cambia y, en su Ctrl-Clugar, la QEMU mata.

Así es como se -monitorusaría normalmente: ¿Cómo cambiar al panel de control de QEMU con -nographics? El | Super usuario

Si lo necesita -monitor, puede recuperar Ctrl + C con -serial mon:stdio: ¿Cómo ejecutar qemu con -nographic y -monitor pero aún así poder enviar Ctrl + C al invitado y salir con Ctrl + AX? El | Desbordamiento de pila

Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
fuente