qemu - libvirt-go DomainEventLifecycleRegister“无法初始化域事件计时器”
问题描述
我已经libvirt-dev
在 Ubuntu 机器上安装、编译并运行了该代码:
package main
import (
"fmt"
"github.com/libvirt/libvirt-go"
)
func main() {
conn, _ := libvirt.NewConnect("qemu:///system")
defer conn.Close()
cb := func(c *libvirt.Connect, d *libvirt.Domain, event *libvirt.DomainEventLifecycle) {
fmt.Println(fmt.Sprintf("Event %d", event.Event))
}
_, err := conn.DomainEventLifecycleRegister(nil, cb)
if err != nil {
panic(fmt.Sprintf("cannot register libvirt domain event: %s", err))
}
}
并得到:cannot register libvirt domain event: virError(Code=1, Domain=0, Message='internal error: could not initialize domain event timer')
我正在使用libvirt-go而数字海洋go-libvirt LifecycleEvents
工作正常......
有任何想法吗?
解决方案
您还没有注册任何事件循环实现。
简单的方法是在打开 libvirt 连接之前调用EventRegisterDefaultImpl
,然后生成一个 EventRunDefaultImpl
在无限循环中运行的 goroutine
更难的方法是使用提供您自己的自定义事件循环实现EventRegisterImpl
推荐阅读
- angular - 为什么 Angular 内置指令不适用于单个组件?
- reactjs - 如何从“上传文件”组件中提取文件名并将它们显示在 UI 上的列表中?
- linux - Ubuntu - 我无法使用 sudo 启动应用程序和运行命令
- json - 仅保留具有字符串值的字段
- php - 浏览器重新启动时删除 Httponly Cookie
- c# - 有没有一种简单的方法可以摆脱这个 IF 循环?
- json - 解决这个简单的(?)JSONPath
- ios - muteLocalVideoStream 没有将agora中的视频静音
- html - 在不使用 CSS 位置的情况下重叠 PNG 图像:相对
- c# - 如何修复 OCR 的倾斜图像?