Ответы:
С текущей GPG (2.1+), чтобы остановить, gpg-agent
вы можете использовать gpgconf --kill
, как это:
gpgconf --kill gpg-agent
Вам не нужно перезапускать его вручную. GPG перезапустит его, когда это будет необходимо.
~/.gnupg
каталог, вам нужно будет перезапустить агент gpg вручную.
gpg-agent
не является общесистемной службой, но запускается один раз для каждого пользователя (таким образом, она не управляется service
). Хотя иногда он вызывается точечными файлами пользователя или, по крайней мере, в Debian и его производных, также когда X11 запускается (и gpg-agent
устанавливается) в /etc/X11/Xsession.d/90gpg-agent
(чтобы убедиться, что общее gpg-agent
используется всеми вызовами GnuPG, неважно, из терминала или из приложений GUI); он также запускается автоматически GnuPG при необходимости. От man gpg-agent
:
Агент автоматически запускается по требованию gpg, gpgsm, gpgconf или gpg-connect-agent. Таким образом, нет причин запускать его вручную. Если вы хотите использовать включенный агент Secure Shell, вы можете запустить агент, используя:
gpg-connect-agent /bye
Обычно простой killall gpg-agent
(из некорневой оболочки) вполне подходит для завершения gpg-agent
. Скорее всего, вы заметите небольшую задержку при использовании GnuPG в следующий раз, так как gpg-agent
он запускается снова.
dirmngr --shutdown
следуют, dirmngr --daemon
а иногда и дополнительные опции (я также включаю конкретный домашний каталог GPG и --use-tor
флаг).
По моему опыту, есть несколько сценариев, когда gpg не сможет запустить новый агент gpg (импортировать новый ключ?).
Убей старого агента так:
GNUPGHOME="${GNUPGHOME:-$HOME/.gnupg}" gpgconf --kill gpg-agent
и затем начните новый:
gpg-agent --homedir "${GNUPGHOME:-$HOME/.gnupg}" --daemon
Явная установка --homedir при запуске гарантирует, что ваш список ps ясен, когда у вас более одного homedir; и это аналогично тому, что делает gpg, когда запускает его.
Установка GNUPGHOME при остановке не требуется, но это может сделать вас или рецензента кода более удобным.