Usando o systemd para iniciar o gpg-agent?

3

Li um pouco sobre o systemd, mas ainda não consigo descobrir como usá-lo para iniciar automaticamente gpg-agent no login. Eu sei que usei systemctl --user , mas construir o gpg-agent.service me deixou perplexo. Todos e quaisquer ponteiros são bem-vindos.

    
por Magnus 06.06.2014 / 09:44

1 resposta

1

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.

    
por 06.06.2014 / 10:27

Tags