Вам либо потребуется создать в вашем проекте вторую программу с номером dbus-run-session
, либо вам нужно будет использовать что-то отличное от dbus-run-session
для запуска своей собственной сеансовой шины.dbus-run-session
предназначен для запуска одной программы на собственной шине;как только эта программа завершается, шина отключается.Так что либо вам нужно предоставить вторую программу, которая выполняет шаги 2 и 3 из вашего плана, либо вам нужно более явно настроить и удалить свой собственный экземпляр dbus-daemon
из вашей программы верхнего уровня, реплицируя часть поведения dbus-run-session
.
Обычно это включает в себя:
- Предоставление
dbus-daemon
файла конфигурации для использования. - Работа
dbus-daemon --config-file=path/to/config --address=path/to/socket --nofork
. - Настройка
DBUS_SESSION_BUS_ADDRESS=unix:path/to/socket
в среде вашей программы, прежде чем делать что-либо с помощью связки ключей. - Делать все, что вам нужно с помощью связки ключей.
- Завершение подпроцесса
dbus-daemon
.