利用 python libvirt API 以阻塞方式启动和停止 qemu-kvm 机器
项目描述
virsh-开始-停止
我想使用 systemd 单元启动和停止单个 libvirt 虚拟机。
呼叫virsh start %i
或virsh stop %i
从单位不会削减它。这是因为它在关闭时不会阻塞,所以你不知道机器是否真的关闭了,除非你将它全部包装在一个 bash 脚本中并使用virsh list | grep myVM
.
启动机器也具有挑战性,因为virsh start
退出状态 1 用于多种错误条件,包括“机器已在运行”。
此脚本的目的是通过 libvirt python 绑定以易于从 systemd 使用的方式启动/停止给定的虚拟机。这意味着我尝试优雅地处理“已经运行”的情况。关闭以阻塞方式发生,可以选择从机器上拔下虚拟电源线,以防它忽略我们的礼貌请求。
我还借此机会每秒发出关闭请求,直到机器停机。当虚拟机运行 libvirt 来宾代理时,这应该是不必要的,但有时它可以帮助说服 Windows 真正关闭而不是询问“真的关闭?” 在没有人的虚拟控制台上单击确定。
示例 systemd 单元文件:
[Unit]
Description=virsh start / stop %i
Requires=libvirtd.service
After=libvirtd.service
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/opt/vollmerhaus.net/venv/bin/virsh-start-stop --machine %i --state started
ExecStop=/opt/vollmerhaus.net/venv/bin/virsh-start-stop --machine %i --state stopped --timeout 80
[Install]
WantedBy=default.target
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
virsh_start_stop-0.0.1.tar.gz
(5.6 kB
查看哈希)
内置发行版
virsh_start_stop-0.0.1-py3.6.egg
(5.4 kB
查看哈希)
关
virsh_start_stop -0.0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8c7fc04cf60d73f293533aeebed09654869c36b5f878718595485a251670ca4d |
|
MD5 | 4a3f545a7cdf2ff6d2440624a4490d26 |
|
布莱克2-256 | 51e1356a93442a094fe92b058b3da866be10921a46538060ebf631456ac78f51 |
关
virsh_start_stop -0.0.1-py3.6.egg 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ece2c1df1dcbf557abe6e2252fd0984a148dbf591d5361678cc5b0d2374fe347 |
|
MD5 | e0abf29255b3b67b28a746fe9976c70e |
|
布莱克2-256 | d021f8877a702d04c3a6c56c1c951a26805bd296d355a4e80e61f3dc65d93510 |
关
virsh_start_stop -0.0.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 951385cc5ebddb71377a9a58a7ff103b4c437e88dd250e68697447a076ab37cd |
|
MD5 | 222b82fa222372933238c0b13c762fed |
|
布莱克2-256 | af87f40e006a35186df9262f90316cfa568490f016b5620f063f15a09aea7590 |