Найти - Пользователи
Полная версия: python+dbus-launch
Начало » Python для экспертов » python+dbus-launch
1
cvetik
Всем привет! Вот какая ситуация. Есть приложение написанное на питоне, которое описывает интерфейс d-bus с несколькими методами и есть приложение, которое сипользует эти методы. Их взаимодейтсвие проходит по сессионной шине. Когда все стояло на fedora то все работало исправно… Появилась необходимость перенести на фряху… все необходимые пакеты быи установлены. Но тут ждала неожиданность, причем весьма неприятная…. если запускать приложения просто через команду python. то возникает ошибка, связанная с x11. она исчезает, если использовать запуск через dbus-launch python … но тут возникает следующая проблема…
Если делать запуск приложения , которое обращается к написанным методам dbus , таким же способом через dbus-launch. возникает ошибка The name org.SmtpIface was not provided by any .service files
Это возникает по видимому потому, что команда dbus-launch каждый раз создает ситемную шину… как мне можно сделать вызов методов из написанного для dbus интерфейса?
вот нынешний код:
main_loop = DBusGMainLoop()
bus = dbus.SessionBus(mainloop=main_loop)
DBUS_NAME = "org.SmtpIface"
DBUS_PATH = "/org/SmtpIface"

class SmtpIface(dbus.service.Object):
def __init__(self):
global bus
bus_name = dbus.service.BusName(DBUS_NAME, bus=bus)
dbus.service.Object.__init__(self, bus_name, DBUS_PATH)
self.bus = dbus.SessionBus()
obj = self.bus.get_object('org.SmtpIface', '/org/SmtpIface')
iface = dbus.Interface(obj, 'org.SmtpIface')
evgenyl
может стоит попробовать сделать этот самый .service файлик и не запускать сервер пусть сам запускает ?
если я не ошибаюсь он по имени будет запускать твой сервер сам
cvetik
evgenyl
может стоит попробовать сделать этот самый .service файлик и не запускать сервер пусть сам запускает ?
если я не ошибаюсь он по имени будет запускать твой сервер сам
хочется сделать безо всяких доплнительных .service файлов… проблема в том, как передать параметры запущенно сессионной шины в приложение, вызывающее написанные методы…
evgenyl
Такое использование d-bus видел в maemo но к сожелению не знаю как там что и как :(
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB