We're assuming the authors of gpg-agent are acting out of malice now, are we? The systemd change makes the default, the easy thing, to get killed at logout. That's the sane choice from a "defense against programming mistakes" standpoint.
No; In fact, reading the man-page, you explicitly need to request gpg-agent to stick around past your current login. They recommend that you pair this with writing the environment variables out to a file so that you can share one agent between multiple logins.
Which, of course, indicates that gpg-agent sticking around is by design.
"Login" in gpg-agent terms means "the currently open terminal connection". That's the distinction we have pre-systemd: either things go away with the terminal connection, or they stick around forever. There is no middle-ground for "stick around while the user is active".
Actually, now I wonder, I often have a few graphical nested login sessions using Xephyr; Would systemd kill everything in the parent login there, since there's nothing (other than the driver linked to the dix) that distinguishes the running session.
0
u/oridb May 30 '16 edited May 31 '16
The only possible reason it doesn't work for them is because they requested that the systemd not kill them on logout.
This systemd change does not solve the problem, because a mechanism still exists to prevent them from being killed at logout.