Libvirt Go: 如何使用 virDomainCreate() 函数启动虚拟机
要在 libvirt 中启动虚拟机 (域),可以使用 virDomainCreate() 函数。
virDomainCreate() 函数接受一个 virDomainPtr 类型的参数,它是指向要启动的域的指针。调用此函数后,libvirt 将启动指定的域。
以下是用 Go 语言编写的示例代码:
package main
import (
'fmt'
'log'
'libvirt.org/go/libvirt'
)
func main() {
// 建立与 Hypervisor 的连接
conn, err := libvirt.NewConnect('qemu:///system')
if err != nil {
log.Fatalf('无法连接到 hypervisor: %v', err)
}
defer conn.Close()
// 获取要启动的域的指针
domain, err := conn.LookupDomainByName('example')
if err != nil {
log.Fatalf('无法找到域: %v', err)
}
defer domain.Free()
// 启动域
err = domain.Create()
if err != nil {
log.Fatalf('无法启动域: %v', err)
}
fmt.Println('域已成功启动')
}
代码说明:
- 首先,使用
libvirt.NewConnect('qemu:///system')建立与 hypervisor 的连接。 - 然后,使用
conn.LookupDomainByName('example')获取要启动的域的指针。将 'example' 替换为要启动的域的名称。 - 最后,使用
domain.Create()启动域。
注意:
- 在运行此代码之前,请确保已安装 libvirt Go 库 (
go get libvirt.org/go/libvirt)。 - 将 'example' 替换为要启动的实际域的名称。
- 此代码假定您正在运行 qemu hypervisor。如果您使用的是不同的 hypervisor,则需要更改连接字符串 (
qemu:///system)。
原文地址: https://www.cveoy.top/t/topic/f1QF 著作权归作者所有。请勿转载和采集!