回答:
現在のGPG(2.1+)では、停止 gpg-agent
するには次のように使用できますgpgconf --kill
。
gpgconf --kill gpg-agent
手動で再起動する必要はありません。GPGは必要に応じて再起動します。
~/.gnupg
ディレクトリを削除した場合、gpgエージェントを手動で再起動する必要があります。
gpg-agent
システム全体のサービスではありませんが、ユーザーごとに1回開始されます(したがって、によって管理されませんservice
)。X11の起動時(およびgpg-agent
インストール時)にユーザーのドットファイルまたは少なくともDebianおよび派生物で呼び出されることもありますが(ターミナルまたはGUIアプリケーションからかどうかに関係なく、すべてのGnuPG呼び出しで/etc/X11/Xsession.d/90gpg-agent
共通gpg-agent
が使用されることを確認するため)。また、必要に応じてGnuPGによって自動的に開始されます。からman gpg-agent
:
エージェントは、gpg、gpgsm、gpgconf、またはgpg-connect-agentによってオンデマンドで自動的に起動されます。したがって、手動で開始する理由はありません。付属のSecure Shellエージェントを使用する場合は、次を使用してエージェントを起動できます。
gpg-connect-agent /bye
通常、killall gpg-agent
(root以外のシェルからの)単純なものでを終了できますgpg-agent
。GnuPGを次回使用するときは、gpg-agent
再び起動されるため、わずかな遅延が発生する可能性があります。
dirmngr --shutdown
後にdirmngr --daemon
、場合によっては追加のオプションが続きます(特定のGPG homedirと--use-tor
フラグも含めます)。
私の経験では、gpgが新しいgpgエージェントの起動に失敗する(新しいキーをインポートする?)シナリオがいくつかあります。
古いエージェントを殺します:
GNUPGHOME="${GNUPGHOME:-$HOME/.gnupg}" gpgconf --kill gpg-agent
そして、新しいものを開始します:
gpg-agent --homedir "${GNUPGHOME:-$HOME/.gnupg}" --daemon
起動時に--homedirを明示的に設定すると、複数のhomedirがある場合にpsリストが明確になります。そして、それはgpgがそれを開始するときに何をするかに類似しています。
停止時にGNUPGHOMEを設定する必要はありませんが、それによりユーザーまたはコードレビュー担当者がより快適になる場合があります。