Разблокировать gnome-keyring из сеанса temp dbus
Я пытаюсь написать приложение на Python, которое может разблокировать gnome-keyring
из текстовой системы (безголовый компьютер) и получить учетные данные. у меня есть gnome-keyring
пакет установлен в этой машине.
В основном мое приложение будет:
- Начать новую сессию dbus
- Разблокируйте гном-брелок в этом сеансе dbus
- Извлеките учетные данные из набора ключей
- Уничтожить сессионный автобус dbus
Я пытаюсь следовать этому руководству: https://pypi.org/project/keyring/
Я пытался читать: Python DBUS SESSION_BUS - зависимость X11, но OP использует dbus-launch
вместо dbus-run-session
, Оригинальная справочная страница для dbus-launch
говорит использовать 'dbus-run-session` для текстовых систем.
Если я начну новый сеанс dbus, используя подпроцесс python, как я могу выполнить шаг № 2 в том же сеансе dbus?
1 ответ
Вам также нужно будет создать вторую программу в вашем проекте под 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
подпроцесс.