Just noticed this change on rawhide...
* 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@.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@.service. The same
command works for tmux.
After the user logs out of all sessions, user@.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, now, I've read this and I could possibly remember to use systemd-run
or to set myself as lingering... Except that I don't want to have to go
through the pain of remembering to either change the system config on
all my servers or always starting stuff with systemd-run if it's a bit
long and I think I might want to ^Z/bg/disown it to let it finish.
Thinking further when my users get that update I don't see myself
telling them to do that when they want to start a screen/tmux/nohup-job,
users do not read every update changelogs (tbh I don't either unless
there's a problem); and they probably wouldn't think of systemd if they
ever get that particular issue.. heck they probably don't even know what
systemd and logind are (even if yes, they are "advanced" enough to ssh
into other servers to run *long* tasks that must continue overnight/when
the user logs out ; it doesn't mean they know what they're using
Sure, this change will work for the whole probably targetted audience of
simple desktop users on shared workstations where we probably want to
kill lingering processes; but how much is that compared to servers ?
I know that if this gets through I will have to change the system
default on all my servers... And while the big batches of thousands of
compute nodes are automated there's still quite a few places to update,
especially since this will be the first time we need to change
logind.conf so it's not just adding a line to a file already propagated
Anyway, I don't really want to start (yet) a(nother) troll on systemd, I
appreciate it's also brought good things; I'd just like the default
values to be sane for most of the users.
I did not see any discussion about this particular setting in the
systemd-devel mailing list so I have hope that it is still open to
change, but I'd rather start with a community where there are more
admins who will likely agree that this change will do more harm than
Even if nothing comes out of it, at least more people will be aware of
the issue and will be able to prepare to avoid most of the chaos that
will come if this stays like this...
Thanks for reading,