目标重新启动后pydbus重新连接

2024-03-28 13:06:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我面临以下问题。你知道吗

我使用pydbus python包测试API,通过使用环境变量DBUS\u SYSTEM\u BUS\u ADDRESS连接到同一网络中的目标linux机器

在正常情况下,这工作得很好,我可以通过创建的代理对象调用任何有效的API。你知道吗

例如:

import os
import pydbus
os.environ['DBUS_SYSTEM_BUS_ADDRESS'] = \
          "tcp:host=192.168.1.100,port=55556,family=ipv4"
bus = pydbus.SystemBus()
proxy = bus.get("busname", "object_path")
return_value = proxy.method-name(args)

作为测试的一部分,我的目标linux机器会在这段时间内重新启动,当我重新使用代理对象时,会出现以下错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/harman/.local/lib/python2.7/site-packages/pydbus/proxy.py", line 47, in get
0, timeout_to_glib(timeout), None)
GLib.Error: g-io-error-quark: The connection is closed (18)

我意识到以前的连接已经不存在了,所以我尝试用以下命令重新初始化连接

bus = pydbus.SystemBus()
proxy = bus.get("busname", "object_path")

我在电脑上也有同样的错误公车,快走()声明。你知道吗

这个问题有解决方案/可能的解决方法吗?你知道吗


Tags: 对象import机器api代理目标getaddress