要在 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('域已成功启动')
}

代码说明:

  1. 首先,使用 libvirt.NewConnect('qemu:///system') 建立与 hypervisor 的连接。
  2. 然后,使用 conn.LookupDomainByName('example') 获取要启动的域的指针。将 'example' 替换为要启动的域的名称。
  3. 最后,使用 domain.Create() 启动域。

注意:

  • 在运行此代码之前,请确保已安装 libvirt Go 库 (go get libvirt.org/go/libvirt)。
  • 将 'example' 替换为要启动的实际域的名称。
  • 此代码假定您正在运行 qemu hypervisor。如果您使用的是不同的 hypervisor,则需要更改连接字符串 (qemu:///system)。

原文地址: https://www.cveoy.top/t/topic/f1QF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录