не может подключиться к сеансу dbus из службы в Ubuntu - PullRequest
0 голосов
/ 28 июня 2018

Я должен запустить свое приложение как службу в 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 Ответ

0 голосов
/ 04 июля 2018

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

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


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

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

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

...