Не может подключиться к сеансу 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.