
Estou executando o QEMU no Linux sem GUI.
Depois de iniciar meu kernel personalizado com QEMU, não consigo encerrar e retornar ao host pressionando Ctrl + C.
Existe alguma maneira de voltar ao sistema operacional host?
Responder1
Ctrl-A X
Para isso -nographic
basta digitar:
Ctrl-A X
que significa
- primeiro pressione Ctrl + A(A é apenas a tecla a, não a alttecla),
- então solte as teclas,
- depois pressione X.
Alternativamente:
entre no monitor QEMU e
Ctrl-A C
digite:quit
e pressione Enter. Veja também:https://stackoverflow.com/questions/14165158/how-to-switch-to-qemu-monitor-console-when-running-with-curses
use o monitor QEMU (igual a
Ctrl-A C
) comtelnet
:qemu-system-x86_64 -monitor telnet::45454,server,nowait -serial mon:stdio
e em um terminal host:
telnet localhost 45454
e daí
quit
a partir daí.-serial mon:stdio
é necessário para manter Ctrl+C funcionando:https://stackoverflow.com/questions/49716931/how-to-run-qemu-with-nographic-and-monitor-but-still-be-able-to-send-ctrlc-to/49751144#49751144desligue a VM do convidado normalmente, por exemplo, com um
powerdown
comando de um shell convidado do Linux, se puder. É claro que isso passa pela sequência normal de desligamento em vez de encerrar imediatamente a VM, mas às vezes é apenas a abordagem mais simples.No entanto, não funciona para todas as máquinas:https://stackoverflow.com/questions/31990487/how-to-cleanly-exit-qemu-after-executing-bare-metal-program-without-user-interve
Testado no Ubuntu 17.10, QEMU 2.10.1.
Responder2
Para fechar um processo QEMU em seu shell:
ctrl+a
, entãox
Responder3
Responder4
Isso é apenas um acréscimo a outras respostas, onde ctrl-a x
funciona, mas você usou um alias. Se você é como eu, está usando o tmux com ctrl-b
substituído por ctrl-a
, e é por isso que não pode usar ctrl-a x
. Uma solução simples para isso é usar o send-keys
utilitário tmux para enviar ctrl-a x
para o qemu.
Em uma janela do tmux em execução, pressione ctrl-a :
para abrir o prompt do tmux, digite send-keys C-a x Enter
e o qemu será encerrado.