Ошибка объекта DBus

1

Я пытаюсь сделать скрипт для запуска моего собственного скрипта, когда моя USB-накопитель подключена. Я нашел хороший питон скрипт здесь, но когда он называет GetAllProperties() метод, который я получаю исключение:

ERROR: dbus.connection: Исключение в обработчике сигнала D-Bus:
Traceback (последний последний вызов):
Файл "/usr/lib/python2.7/site-packages/dbus/connection.py", строка 214, в файле maybe_handle_message
self._handler (* args, ** kwargs)
Файл "./hal-automount", строка 31, в device_added
properties = self.udi_to_device (udi).GetAllProperties()
Файл "/usr/lib/python2.7/site-packages/dbus/proxies.py", строка 68, в __call__
return self._proxy_method (* args, ** keywords)
Файл "/usr/lib/python2.7/site-packages/dbus/proxies.py", строка 140, в __call__
** ключевые слова)
Файл "/usr/lib/python2.7/site-packages/dbus/connection.py", строка 630, в call_blocking
сообщение, таймаут)
DBusException: org.freedesktop.DBus.Error.AccessDenied: отклоненное сообщение отправки, 3 согласованных правила; 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, не могли бы вы дать мне подсказку, что случилось? Благодарю.

Теги:
opensuse
dbus

1 ответ

2
Лучший ответ

Вызов метода DBus завершился неудачно из-за политики доступа. Вероятно, это потому, что вы вызвали метод без указания интерфейса. Похож на ошибку в скрипте, который вы пытались использовать (методы DBus всегда должны вызываться через интерфейс).

Попробуйте заменить:

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

С:

def udi_to_device(self, udi):
    obj = self.bus.get_object("org.freedesktop.Hal", udi)
    return dbus.Interface(obj, dbus_interface='org.freedesktop.Hal.Device')

BTW: HAL теперь устарел, вам, вероятно, следует переключиться на udisks. См. Http://www.freedesktop.org/wiki/Software/hal

  • 0
    Большое спасибо, это работает! :)
  • 0
    Это похоже на мой вопрос - не могли бы вы проверить это? stackoverflow.com/questions/34424037/...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню