Jawaban:
Dengan GPG saat ini (2.1+), untuk berhenti gpg-agent Anda dapat menggunakan gpgconf --kill, seperti ini:
gpgconf --kill gpg-agent
Anda tidak perlu me-restart secara manual. GPG akan memulai kembali saat dibutuhkan.
~/.gnupgdirektori, Anda harus memulai ulang agen gpg secara manual.
gpg-agentbukan layanan seluruh sistem tetapi dimulai sekali per pengguna (dengan demikian, tidak dikelola oleh service). Meskipun kadang-kadang dipanggil oleh pengguna dotfile atau setidaknya di Debian dan turunannya juga ketika X11 dimulai (dan gpg-agentdiinstal) di /etc/X11/Xsession.d/90gpg-agent(untuk memastikan bahwa yang umum gpg-agentdigunakan oleh semua panggilan GnuPG, tidak peduli apakah dari terminal atau aplikasi GUI); itu juga dimulai secara otomatis oleh GnuPG bila diperlukan. Dari man gpg-agent:
Agen secara otomatis dimulai berdasarkan permintaan oleh gpg, gpgsm, gpgconf, atau gpg-connect-agent. Jadi tidak ada alasan untuk memulainya secara manual. Jika Anda ingin menggunakan Agen Shell yang disertakan, Anda dapat mulai menggunakan:
gpg-connect-agent /bye
Biasanya, simpel killall gpg-agent(dari cangkang non-root) harusnya baik untuk diakhiri gpg-agent. Anda mungkin akan mengamati sedikit keterlambatan saat menggunakan GnuPG di waktu berikutnya, seperti gpg-agentyang dimulai lagi.
dirmngr --shutdowndiikuti oleh dirmngr --daemondan kadang-kadang opsi tambahan (saya juga menyertakan homedir GPG tertentu dan --use-torbendera).
Dalam pengalaman saya ada beberapa skenario di mana gpg akan gagal untuk memulai agen gpg baru (mengimpor kunci baru?).
Bunuh agen lama seperti itu:
GNUPGHOME="${GNUPGHOME:-$HOME/.gnupg}" gpgconf --kill gpg-agent
dan kemudian mulai yang baru:
gpg-agent --homedir "${GNUPGHOME:-$HOME/.gnupg}" --daemon
Mengatur --homedir secara eksplisit saat memulai memastikan daftar ps Anda jelas ketika Anda memiliki lebih dari satu homedir; dan itu analog dengan apa yang dilakukan gpg ketika mulai itu.
Mengatur GNUPGHOME saat berhenti tidak perlu, tetapi mungkin membuat Anda atau peninjau kode lebih nyaman.