![VM:如何从 libvirt QEMU 钩子中删除 Managedsave-remove?](https://linux22.com/image/117229/VM%EF%BC%9A%E5%A6%82%E4%BD%95%E4%BB%8E%20libvirt%20QEMU%20%E9%92%A9%E5%AD%90%E4%B8%AD%E5%88%A0%E9%99%A4%20Managedsave-remove%EF%BC%9F.png)
我需要从 libvirt QEMU 挂钩执行“virsh Managedsave-remove VMname”。https://www.libvirt.org/hooks.html说:“从钩子脚本中调用 libvirt 函数 - 不要这样做!:钩子脚本不得回调到 libvirt,因为 libvirt 守护进程已经在等待脚本退出。”这意味着我不能这样做:
virsh Managedsave-删除虚拟机名称
从 QEMU 挂钩内,因为我将挂起 libvirt 守护进程。
有没有办法从 libvirt QEMU 挂钩执行相同的功能?
详细信息:我有一个虚拟机(Win7),它打开网络驱动器上的文件。当此虚拟机关闭(以任何方式)然后重新启动时,打开该文件的程序无法重新连接到它,因为文件保持锁定状态。 VM是QEMU/KVM,机器是QNAP NAS,问题中的程序是hMailServer,其数据库hMailServer.sdf位于网络驱动器上。
在某些情况下,虚拟机被保存为托管保存 - 我对此无法控制。当 VM 从 Managedsave 重新启动时,它无法连接到我只是使用 virsh Managedsave-remove VMname 从脚本中修复的文件。
我在脚本中修复了两个问题,如果虚拟机不活动,则启动虚拟机。
然后我想通过挂钩 VMname 的启动过程来进行改进,以便修复将自动应用于每种可能的情况。并被困在那里。我需要这两个修复才能正常工作。