Я создаю собственный сервис dbus
для своих нужд и хочу, чтобы он запускался автоматически, когда кому-то это нужно. Для этой цели я создал .service
файл, подобный этому
[D-Bus Service]
Name=com.mycompany.servicename
Exec=/home/myuser/Workspace/service-start
User=myuser
Здесь я просто изменил фактическое имя службы и исполняемого файла, но это не главное. Я перепроверил настоящие имена - они точно совпадают. Я поместил этот файл под именем com.mycompany.servicename.service в папку /usr/share/dbus-1/services (я использую Ubuntu 11.10). Исполняемый файл имеет x
разрешения для всех. И вот проблема - когда я пытаюсь запустить клиент, который выполняет
bus = dbus.SessionBus()
bus.get_object('com.mycompany.servicename','/path/to/object')
я получаю dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.mycompany.servicename was not provided by any .service files
Объект с путем '/path/to/object'
регистрируется сразу после запуска службы. Я просто не понимаю, почему dbus
не может найти мой файл .service
. Может быть, я что-то упускаю? Есть идеи?
Изменить Мне удалось заставить D-BUS автоматически запускать мой скрипт. Раздел файла .service
должен называться [D-BUS Service]
вместо [D-Bus service]
.service
файлах, предоставляющихsession buses
, но в то же время их много в папке, о которой я упоминал ранее (/usr/share/dbus-1/services). Имя папки я получил здесь - person pss   schedule 16.02.2012