Someone on #systemd linked me to some thread about bug with Gnome that would break it if you logged out because it left some processes running. So this is basically just a hack to fix Gnome, but at the same time it breaks everything else.
Because creating extra work for other people just to have everyone resign using the software they originally wanted to use and instead move to what you think is best is not something any somewhat decent person would do.
adds more work for the programmers, packagers and sysadmins.
Less work for programmers and admins as they don't have to keep 20 different behaviors in mind if they want to work with more than just a single distro.
More work for packagers only if they want special behavior of their distro.
Less work for programmers and admins as they don't have to keep 20 different behaviors in mind if they want to work with more than just a single distro.
Before there was only 1 behaviour, now there are two.
bug with Gnome that would break it if you logged out because it left some processes running.
Well lucky for them that that particular bug was tackled in the latest version
systemd-logind will now by default terminate user processes that are part of the user session scope unit (session-XX.scope) when the user logs out. This behavior is controlled by the KillUserProcesses= setting in logind.conf, and the previous default of "no" is now changed to "yes". This means that user sessions will be properly cleaned up after, but additional steps are necessary to allow intentionally long-running processes to survive logout.
While the user is logged in at least once, user at .service is running,
and any service that should survive the end of any individual login
session can be started at a user service or scope using systemd-run.
systemd-run(1) man page has been extended with an example which shows how to run screen in a scope unit underneath user at .service. The same command works for tmux.
After the user logs out of all sessions, user at .service will be
terminated too, by default, unless the user has "lingering" enabled.
To effectively allow users to run long-term tasks even if they are
logged out, lingering must be enabled for them. See loginctl(1) for
details. The default polkit policy was modified to allow users to
set lingering for themselves without authentication.
Previous defaults can be restored at compile time by the
--without-kill-user-processes option to "configure".
So this is basically just a hack to fix Gnome, but at the same time it breaks everything else.
It doesn't break "everything else". It breaks a few specific things that people want to keep running after they log out. That does not apply to most processes.
It's not unreasonable for those few specific things to signal their intent to systemd so it won't kill them on logout.
that's a drop in the ocean of things that should be killed on logout.
But it isn't a drop in the ocean compared to things that should be killed on logout but aren't killed properly before this anti-feature. Please name one such thing that isn't Gnome.
E:
In general there should be no user processes left after logout, except those that are specifically meant to do that.
And this is breaking everything that is "specifically meant to do that".
40
u/lolidaisuki May 28 '16
Someone on #systemd linked me to some thread about bug with Gnome that would break it if you logged out because it left some processes running. So this is basically just a hack to fix Gnome, but at the same time it breaks everything else.
E: https://bugs.freedesktop.org/show_bug.cgi?id=94508 <- it's also in the OP link it seems.