Sononi Limited / 有限会社その弐

弊社の技術資料やコラム等を公開しています。
内容に誤りや、社会通念上不適切な点があることが考えられますが、弊社では本サイトの情報の使用により生じたいかなる損害も責任を負いかねますことをご了承ください。


QEMUのモニタにアクセスする

初出:2019-06-21 00:00:00  更新:2019-06-21 00:00:00
カテゴリ: IT   タグ: Linux 仮想環境

あるシステムで下記のような感じでQEMUのVMが動いていた。VNCやシリアルコンソールで入る術がない。

1
2
3
4
ps ax | grep qemu
---
1454 pts/0 Ssl+ 8:01 qemu-system-x86_64 -enable-kvm -cpu host -curses -device virtio-net-pci,netdev=net0,mac=(中略) -monitor unix:/var/run/someapp/vm.sock,server,nowait (後略)
---

上記のように、QEMUモニタがUnixソケット経由で開いている(-monitor unix:/var/run/someapp/vm.sock,server,nowait)。
このVMのQEMUモニタにアクセスしたい場合、下記のようにする。

1
2
3
4
5
6
7
socat - unix-connect:/var/run/someapp/vm.sock
# 入れると下記のようになる
(qemu)
# 例えば、システムをシャットダウンする
(qemu) system_powerdown
# quitで抜ける
(qemu) quit

あるいはこういう感じで

1
2
3
echo "system_powerdown" | socat - unix-connect:/var/run/someapp/vm.sock
# とか
echo "screendump screen.ppm" | socat - unix-connect:/var/run/someapp/vm.sock