Я только что узнал, что если вы запускаете QEMU с -monitor telnet::45454,server,nowait -nographic
, то Ctrl-C убивает виртуальную машину QEMU вместо того, чтобы генерировать SIGINT для гостя: Как передать Ctrl-C гостю при запуске qemu с -нографический? | Обмен стеками Unix и Linux
Однако я не хочу удалять -monitor
, потому что это удобно для автоматизации команд мониторинга, например. это позволяет мне создать вспомогательный скрипт, который делает:
echo 'savevm my_snap_id' | telnet localhost 45454
Есть ли способ, чтобы мои Ctrl-C
и -monitor
работали с -nographic
?
Полная команда QEMU:
qemu-system-x86_64 -append 'root=/dev/vda console=ttyS0' -kernel 'bzImage' -drive file='rootfs.ext2.qcow2,if=virtio,format=qcow2' -nographic -monitor telnet::45454,server,nowait
В QEMU 2.10.1, Ubuntu 17.10, полная команда QEMU:
./x86_64-softmmu/qemu-system-x86_64 \
-append "root=/dev/sda console=ttyS0 nokaslr printk.time=y" \
-drive file="${dir}/out/x86_64/buildroot/images/rootfs.ext2.qcow2,format=qcow2" \
-kernel "${dir}/out/x86_64/buildroot/images/bzImage" \
-nographic \
Если я добавлю:
-chardev stdio,id=s1,signal=off \
-serial none -device isa-serial,chardev=s1
затем Ctrl+C
начинает работать как нужно, но Ctrl+A X
не работает для выхода из QEMU, что иногда раздражает: я могу использовать telnet
до quit
, но это требует больше ввода/автоматизации.
http://lists.nongnu.org/archive/html/qemu-discuss/2018-04/msg00006.html
Вам нужно каким-то образом отправить эти ключи на альтернативное мониторное устройство.
@ivan_pozdeev какое альтернативное устройство монитора, как его использовать?
qemu.weilnetz.de/doc/qemu-doc.html
@ivan_pozdeev извините, я не могу найти там "альтернативный монитор"
Опция
-monitor
имеет значение по умолчанию, описанное в документе. Под «альтернативным устройством» я имел в виду устройство, которое вы указываетеqemu
использовать вместо устройства по умолчанию.