Я создаю пользовательский 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]