Mar*_*ark 14 virtual-machine qemu
我通过以下方式配置了 Qemu 的 grub:
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial"
GRUB_CMDLINE_LINUX="..console=ttyS0"
Run Code Online (Sandbox Code Playgroud)
并qemu使用-nographic命令行选项运行该进程。这些使能将当前终端用于串行控制台和qemu监视器控制台。但是现在,每当我在正在运行的 VM 中按Ctrl+ 时C,它都会被拦截qemu并关闭该进程。
我应该如何通过Ctrl+C或任何其他涉及CTRLQemu 的击键?
小智 18
在您的 shell 中,在运行 qemu 之前,运行“stty intr ^]”将中断键从 ^c 更改为 ctrl-]
这样,ctrl-c 将传递给 qemu,但您仍然可以通过按 ctrl-] 来中断 qemu 本身
您可以尝试使用sendkey命令 using -monitor stdio。虽然很明显的-display none -serial mon:stdio选项应该通过Ctrl+c通过给来宾。
您还可以创建一个监视器套接字,如下所示:
qemu -display none -monitor unix:/tmp/qemu-monitor,server,nowait
Run Code Online (Sandbox Code Playgroud)
然后,连接到监视器以使用 sendkey,socat如下所示:
socat - UNIX-CONNECT:/tmp/qemu-monitor
Run Code Online (Sandbox Code Playgroud)
您现在可以发送您的密钥,如下所示:
(qemu) sendkey ctrl-c
sendkey ctrl-c
Run Code Online (Sandbox Code Playgroud)
删除-monitor或添加-serial mon:stdio
从 QEMU 2.10.1 开始,Ubuntu 17.10Ctrl-C在使用-nographic.
但是,如果您也使用该-monitor选项,行为会发生变化,并且会Ctrl-C杀死 QEMU。
这是-monitor通常的使用方式:How to switch to the QEMU control panel with -ngraphics? | 超级用户
如果您需要-monitor,您可以通过以下方式恢复 Ctrl+C -serial mon:stdio:How to run qemu with -ngraphic and -monitor but still能够将 Ctrl+C 发送给来宾并使用 Ctrl+AX 退出?| 堆栈溢出
| 归档时间: |
|
| 查看次数: |
13611 次 |
| 最近记录: |