O comando gpg-agent
inicia um daemon, mas os programas que o utilizam esperam que determinadas variáveis de ambiente ( GPG_AGENT_INFO
e GPG_TTY
) sejam definidas para que elas saibam se comunicar com o agente. Você tem que de alguma forma propagar estes do script de serviço para seus shells. A página gpg-agent
MAN contém um snippet que inicia o daemon e grava um fragmento de código de shell em um arquivo na home do usuário
gpg-agent --daemon --write-env-file "${HOME}/.gpg-agent-info"
Você pode colocar esta linha como script de shell e chamá-la de seu arquivo de serviço
[Service]
Type=forking
ExecStart=script-file.sh
<...>
O arquivo .gpg-agent-info
precisa ser originado de cada shell. A página MAN recomenda
if [ -f "${HOME}/.gpg-agent-info" ]; then
. "${HOME}/.gpg-agent-info"
export GPG_AGENT_INFO
fi
GPG_TTY=$(tty)
export GPG_TTY
no seu arquivo .profile
para fazer isso. Informações sobre como gravar arquivos de serviço do systemd podem ser encontradas na página MAN do systemd.service.