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