3

Я немного прочитал о systemd, но до сих пор не могу понять, как использовать его для автоматического запуска gpg-agent при входе в систему. Я собираюсь использовать systemctl --user , но создание gpg-agent.service поставило меня в тупик. Любые и все указатели приветствуются.

1 ответ1

1

Команда gpg-agent запускает демон, но программы, использующие его, ожидают установки определенных переменных среды (GPG_AGENT_INFO и GPG_TTY), чтобы они знали, как связаться с агентом. Вы должны каким-то образом распространять их из служебного скрипта в свои оболочки. Страница MAN gpg-agent содержит фрагмент, который запускает демон и записывает фрагмент кода оболочки в файл в доме пользователя.

gpg-agent --daemon --write-env-file "${HOME}/.gpg-agent-info"

Вы можете поместить эту строку в виде сценария оболочки и вызвать ее из служебного файла.

[Service]
Type=forking
ExecStart=script-file.sh
<...>

Файл .gpg-agent-info должен быть получен из каждой оболочки. Страница MAN рекомендует

if [ -f "${HOME}/.gpg-agent-info" ]; then
  . "${HOME}/.gpg-agent-info"
  export GPG_AGENT_INFO
fi

GPG_TTY=$(tty)
export GPG_TTY

в вашем файле .profile чтобы сделать это. Информацию о том, как записывать файлы службы systemd, можно найти на странице MAN systemd.service.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .