[PATCH] gpg-agent: Enable socket activation

Werner Koch wk at gnupg.org
Thu Nov 20 12:31:35 CET 2014

On Thu, 20 Nov 2014 01:19, shea at shealevy.com said:

> * With socket activation, external programs talking to the agent
> simply need to try to connect to the socket. With on-demand activation

That would a very different program than we have now.  The Hurd calls
this a translator and it is a nice technique.  However, neither systemd
nor translators are established and portable methods and thus should be
avoided by portable software.  But please save us a systemd discussion.

Actually, we do this for years on Windows and it works very reliable.

> socket (this can theoretically be bypassed with file locks, perhaps
> this is already done in which case this is a non-issue).

Sure that is done.  In addition gpg-agent checks that its socket has not
been reused by another aganet and termintes itself in this case.

> * User-level daemon managers like systemd --user and launchd know when
> the user has logged out, and thus can kill the running agent and

Valid point.  Hwoever I don't see a problem to not terminate the
gpg-agent on logout.  After all most mechines today are single user and
the agent is supposed to run on your own desktop and not on a remote
machine.  What one should put into the ~/.xession at exit is 

  gpgconf --reload gpg-agent

(or code to send a HUP) to flush the caches.  This should also be done
before the system hibernates.

> daemon on log out, and even if you add a custom service that runs
> gpg-connect-agent KILLAGENT on logout there is a race possible where
> another process tries to connect after the kill goes through. I've

Well that would be hard to avoid unless one accespts a stale lock file.



Die Gedanken sind frei.  Ausnahmen regelt ein Bundesgesetz.

More information about the Gnupg-devel mailing list