Respostas:
Com o GPG atual (2.1+), para interromper gpg-agent
você pode usar gpgconf --kill
, assim:
gpgconf --kill gpg-agent
Você não precisa reiniciar manualmente. O GPG irá reiniciá-lo quando necessário.
~/.gnupg
diretório, precisará reiniciar o agente gpg manualmente.
gpg-agent
não é um serviço de todo o sistema, mas iniciado uma vez por usuário (portanto, não é gerenciado por service
). Embora algumas vezes seja invocado pelos dotfiles do usuário ou pelo menos no Debian e derivados também quando o X11 é iniciado (e gpg-agent
instalado) no /etc/X11/Xsession.d/90gpg-agent
(para garantir que um comum gpg-agent
seja usado por todas as chamadas do GnuPG, não importa se é de um terminal ou de uma interface gráfica do usuário); também é iniciado automaticamente pelo GnuPG quando necessário. De man gpg-agent
:
O agente é iniciado automaticamente sob demanda pelo gpg, gpgsm, gpgconf ou gpg-connect-agent. Portanto, não há razão para iniciá-lo manualmente. Caso você queira usar o Secure Shell Agent incluído, você pode iniciar o agente usando:
gpg-connect-agent /bye
Normalmente, um simples killall gpg-agent
(de um shell não raiz) deve ser bom para terminar gpg-agent
. Você provavelmente observará um pequeno atraso ao usar o GnuPG na próxima vez, pois gpg-agent
é iniciado novamente.
dirmngr --shutdown
seguidos dirmngr --daemon
e, às vezes, opções adicionais (eu também incluo um homedir GPG específico e o --use-tor
sinalizador).
Na minha experiência, existem alguns cenários em que o gpg falhará ao iniciar um novo agente (importando uma nova chave?).
Mate o agente antigo da seguinte maneira:
GNUPGHOME="${GNUPGHOME:-$HOME/.gnupg}" gpgconf --kill gpg-agent
e inicie o novo:
gpg-agent --homedir "${GNUPGHOME:-$HOME/.gnupg}" --daemon
Definir explicitamente o --homedir ao iniciar garante que a sua lista ps fique clara quando você tiver mais de um homedir; e é análogo ao que o gpg faz quando o inicia.
Definir o GNUPGHOME ao parar não é necessário, mas isso pode deixar você ou o revisor de código mais confortáveis.