VM:如何从 libvirt QEMU 钩子中删除 Managedsave-remove?

VM:如何从 libvirt QEMU 钩子中删除 Managedsave-remove?

我需要从 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 的启动过程来进行改进,以便修复将自动应用于每种可能的情况。并被困在那里。我需要这两个修复才能正常工作。

相关内容