Не может подключиться к сеансу dbus из службы в Ubuntu

Я должен запустить свое приложение как сервис в Ubuntu 16.04. Я использую systemd, чтобы он работал как сервис во время загрузки. Мое приложение должно подключаться как к сеансу dbus, так и к системе dbus. подключение к системе dbus успешно. Но подключение к сеансу dbus не удается. Я попытался запустить свое приложение как службу, используя "systemctl start Myapplication", на этот раз также не подключаясь к сеансовой шине. Но если я запускаю свое приложение из терминала "./Myapplication", он успешно подключается как к сеансу, так и к системе dbus. Кто-нибудь может мне с этим помочь?

Ниже приведен код моего файла.service.


[Unit]

Description=node-health-monitor to observe system health

[Service]

Type=notify

ExecStart=/home/deepan/deepan/Myapplication

[Install]

WantedBy=graphical.target

Я использую GDBUS,

1 ответ

Установите его как пользовательский сервис (чтобы его можно было запустить как systemctl --user start Myapplication).

Или продолжайте использовать его в качестве общесистемной службы, но каким-то образом переключайте пользователя в Myapplication при подключении к сеансовой шине.


Что я думаю вызывает проблемы:

Myapplication запускается от имени пользователя root при выполнении systemctl start Myapplication,

Поэтому, когда он пытается подключиться к сеансовой шине, он пытается подключиться к сеансу пользователя root.

Другие вопросы по тегам