Golang Libvirt: 如何关闭虚拟机而不删除?
Golang Libvirt: 如何关闭虚拟机而不删除?
在使用 Go 语言和 Libvirt 库操作虚拟机时,你可能会遇到使用 Destroy 方法关闭虚拟机后,虚拟机被删除的问题。这是因为 Destroy 方法会强制关闭并删除虚拟机。
为了避免这种情况,你应该使用 Shutdown 方法来关闭虚拟机。Shutdown 方法会发送一个关机指令给虚拟机,虚拟机会按照正常关机的流程进行关闭,而不是立即强制关机并删除。这样可以保留虚拟机的状态和数据。
以下是使用 Shutdown 方法关闭虚拟机的代码示例:gocreat, err := cli.DomainCreateXML(marshal, libvirt.DOMAIN_NONE)if err != nil { logger.Error(err.Error())}if req.Advanced.OtherConfig.AutoMaticStartUp { err = creat.SetAutostart(true) if err != nil { logger.Error(err.Error()) }}time.Sleep(5 * time.Second)err = creat.Shutdown() // 使用 Shutdown 方法关闭虚拟机if err != nil { logger.Error(err.Error())}
通过使用 Shutdown 方法,你可以安全地关闭虚拟机,而不会意外删除它。
原文地址: https://www.cveoy.top/t/topic/f28C 著作权归作者所有。请勿转载和采集!