DBus目标

2024-07-03 07:12:29 发布

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

我正在尝试制作一个脚本,以便在连接U盘时启动自定义脚本。 我找到了不错的python脚本here,但当它调用GetAllProperties()方法时,我得到了一个异常:

ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/dbus/connection.py", line 214, in maybe_handle_message
self._handler(*args, **kwargs)
File "./hal-automount", line 31, in device_added
properties = self.udi_to_device(udi).GetAllProperties()
File "/usr/lib/python2.7/site-packages/dbus/proxies.py", line 68, in __call__
return self._proxy_method(*args, **keywords)
File "/usr/lib/python2.7/site-packages/dbus/proxies.py", line 140, in __call__
**keywords)
File "/usr/lib/python2.7/site-packages/dbus/connection.py", line 630, in call_blocking
message, timeout)
DBusException: org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 3 matched rules; type="method_call", sender=":1.39539" (uid=0 pid=9527 comm="python) interface="(unset)" member="getAllProperties" error name="(unset)" requested_reply=0 destination=":1.8" (uid=0 pid=3039 comm="/usr/sbin/hald))

操作系统:openSuSE 11.4

我以前没有和DBus合作过,你能告诉我怎么了吗? 谢谢。在


Tags: inpyself脚本messagelibpackagesusr
1条回答
网友
1楼 · 发布于 2024-07-03 07:12:29

由于访问策略,DBus方法调用失败。这可能是因为您在没有指定任何接口的情况下调用了一个方法。看起来像是您试图使用的脚本中的错误(DBus方法应该始终通过接口调用)。在

尝试替换:

def udi_to_device(self, udi):
    return self.bus.get_object("org.freedesktop.Hal", udi)

有:

^{pr2}$

顺便说一句:哈尔现在已经过时了,你应该换成udisk。见http://www.freedesktop.org/wiki/Software/hal

相关问题 更多 >