返回顶部
首页 > 资讯 > 后端开发 > GO >Golang libvirt guest-agent 不可用
  • 575
分享到

Golang libvirt guest-agent 不可用

并发请求 2024-02-09 20:02:33 575人浏览 安东尼
摘要

PHP小编柚子发现,最近一些用户反馈在golang中使用libvirt guest-agent时遇到了不可用的问题。libvirt guest-agent是libvirt库的一部分,用

PHP小编柚子发现,最近一些用户反馈在golang中使用libvirt guest-agent时遇到了不可用的问题。libvirt guest-agent是libvirt库的一部分,用于与虚拟机中的客户操作系统进行通信。然而,一些用户在尝试使用它时遇到了连接问题或功能失效的情况。这对于那些依赖libvirt guest-agent进行虚拟机管理和监控开发人员来说是一个令人沮丧的问题。接下来,我们将探讨可能的原因和解决方案,帮助解决这个问题。

问题内容

我尝试通过 libvirt Golang api 与 qemu 实例上的来宾代理进行通信。但是,它总是拒绝我与的连接

2022-12-02t00:10:43.799+0100    dpanic  test/main.go:335    failed to connect to guest  {"error": "virerror(code=86, domain=10, message='guest agent is not responding: qemu guest agent is not connected')"}

即使 qemu 实例已完全启动并且可以通过命令行使用来宾代理

sudo virsh qemu-agent-command test-vm '{"execute":"guest-info"}'

这是实现中的错误还是我必须在 go 代码中的某个位置注册代理?我无法在文档中找到参考资料。

    
      
      
      
      

谢谢!

解决方法

不知道最后是什么原因。我有一个循环并且正在访问,或者更具体地说,尝试访问代理。我将其更改为使用 500 毫秒的超时,但它不起作用。

type qemuStatusResponse struct {
    Return struct {
        Exitcode int    `JSON:"exitcode,omitempty"`
        OutData  string `json:"out-data,omitempty"`
        Exited   bool   `json:"exited,omitempty"`
        ErrData  string `json:"err-data,omitempty"`
    } `json:"return,omitempty"`
}

func (l *LibvirtInstance) waitForCompletion(ctx context.Context, pid int, domain *libvirt.Domain) (response *qemuStatusResponse, err error) {
    response = &qemuStatusResponse{}

    ticker := time.NewTicker(500 * time.Millisecond)
    defer ticker.Stop()
    for {
        select {
        case <-ticker.C:
            result, err := domain.QemuAgentCommand(
                fmt.Sprintf(`
                {
                    "execute": "guest-exec-status",
                    "arguments": {
                        "pid": %d
                    }
                    }`, pid),
                libvirt.DOMAIN_QEMU_AGENT_COMMAND_BLOCK, 0)
            if err != nil {
                return nil, err
            }
            if err := json.Unmarshal([]byte(result), response); err != nil {
                return nil, err
            }
            if response.Return.Exited {
                return response, nil
            }
        case <-ctx.Done():
            return nil, ctx.Err()
        }
    }
}

此外,我遇到了一些稳定性问题(即,当对连接执行多个并发请求时,它有时会被破坏)。我在网上发现一些文章建议将用户添加到 kvm 组。这对我有用。

以上就是Golang libvirt guest-agent 不可用的详细内容,更多请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: Golang libvirt guest-agent 不可用

本文链接: https://lsjlt.com/news/562818.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Golang libvirt guest-agent 不可用
    php小编柚子发现,最近一些用户反馈在Golang中使用libvirt guest-agent时遇到了不可用的问题。libvirt guest-agent是libvirt库的一部分,用...
    99+
    2024-02-09
    并发请求
  • golang函数不可变
    Golang 是一个非常受欢迎的开源编程语言,它使用简单、高效、可读性强的代码语法,在网络编程、系统编程和Web应用方面得到广泛应用。Golang 中的函数是一种非常强大的概念,而函数的不可变性可以帮助开发人员更加有效地编写高质量的代码。函...
    99+
    2023-05-14
  • 不用Jar包的Agent的优点有哪些
    本篇内容介绍了“不用Jar包的Agent的优点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!提起 JavaAgent,很多人都说几句,...
    99+
    2023-06-16
  • Win XP你不知道的来宾帐户Guest帐户的使用
        依次点击“开始->设置-控制面板”,找到并双击“用户帐户”项,可能看到当前系统中的所有帐户,包括Guest帐户(来宾帐户)。   如果当前是启用状态...
    99+
    2023-06-03
    winxp Guest帐户 来宾 Guest 帐户 使用
  • golang不可重入是什么意思
    在计算机科学领域中,重入是指一个函数在执行期间可以被多次调用的特性。但是,有些语言或环境并不支持函数的重入。在 Golang 中,函数不是可重入的,这是由于 Golang 本身的设计决策所导致的。首先,让我们了解什么是不可重入函数。一个不可...
    99+
    2023-05-14
  • golang不好用
    Golang作为一种相对较新的编程语言,其实已经在许多领域取得了令人瞩目的成就,尤其是在高并发、分布式、网络编程等方向上被广泛使用。然而,仍有一些人认为Golang不好用,本篇文章将对其进行探讨。先来看看为什么会有人认为Golang不好用。...
    99+
    2023-05-15
  • golang可以用正则吗
    golang可以用正则。golang提供了简便而且高效的正则表达式功能,使得在处理文本时更加方便和灵活,golang提供了内置的正则表达式包regexp,用于支持正则表达式的相关功能,还提供了“MatchString()”和“Match()...
    99+
    2023-07-18
  • jquery可不可以用this
    本文小编为大家详细介绍“jquery可不可以用this”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery可不可以用this”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。jquery可以用this。在jq...
    99+
    2023-07-04
  • golang不再用c
    随着互联网和云计算技术的不断发展,高性能、高安全、高可靠、高可扩展性的编程语言越来越受到市场的欢迎。在这些编程语言中,golang被认为是一种非常值得学习和使用的语言。golang简介Golang是Google在2009年发布的一种编程语言...
    99+
    2023-05-15
  • golang 不用框架
    golang是一门支持并发编程的静态类型编程语言。它在处理大量的web并发请求时表现非常出色,可以轻松地扩展性能。很多人在使用golang时都会使用一些常用的web框架如Beego,Gin,Martini等,但我们可以完全不使用这些框架去编...
    99+
    2023-05-19
  • 如何解决Tomcat中应用调用Libvirt库进行控制时可能导致线程卡死问题
    这篇文章将为大家详细讲解有关如何解决Tomcat中应用调用Libvirt库进行控制时可能导致线程卡死问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。最近的项目中有用到libvirt的jav...
    99+
    2023-06-13
  • vuejs可不可以使用mui
    这篇文章给大家分享的是有关vuejs可不可以使用mui的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 vuejs可以使用mui,方法:1、去githu...
    99+
    2024-04-02
  • javascript可不可以使用socket
    这篇文章主要介绍了javascript可不可以使用socket的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript可不可以使用socket文章都会有所收获,下面我...
    99+
    2024-04-02
  • JavaScript中可不可以用class
    本文小编为大家详细介绍“JavaScript中可不可以用class”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript中可不可以用class”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2024-04-02
  • linux上可不可以用c
    本文小编为大家详细介绍“linux上可不可以用c”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux上可不可以用c”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2023-03-20
    linux
  • windows cortana可不可以禁用
    这篇文章主要介绍了windows cortana可不可以禁用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇windows cortana可不可以禁用文章都会有所收获,下面我们一...
    99+
    2023-03-14
    windows cortana
  • Golang如何实现一个不可复制类型
    这篇文章主要讲解了“Golang如何实现一个不可复制类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Golang如何实现一个不可复制类型”吧!如何复制一个对象不考虑IDE提供的代码分析和g...
    99+
    2023-07-05
  • HTML的p标签可不可以不用align
    本文小编为大家详细介绍“HTML的p标签可不可以不用align”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML的p标签可不可以不用align”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2024-04-02
  • 揭秘 Golang 字符串背后的秘密:可变还是不可变
    go 字符串不可变,但可以通过指针修改。1. 字符串是值类型,分配新变量时创建新值。2. 指针可以指向字符串并修改其内容。3. 字符串拼接创建新副本,不影响原字符串。 深入浅出:揭开 ...
    99+
    2024-04-08
    字符串 golang
  • golang不同包调用
    Go语言是一种开源的编程语言,它的出现有着很多优点,其中包括静态类型检查、垃圾回收和协程等。在使用Go语言进行开发时,使用不同包的函数和变量是一个常见的需求。本文将介绍一些关于Go语言不同包调用的方法和技巧。导入需要的包在Go语言中,我们需...
    99+
    2023-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作