With systemd 230 we switched to a default in which user processes started as part of a login session are terminated when the session exists (KillUserProcesses=yes). See https://github.com/systemd/systemd/blob/master/NEWS#L3 , the commit that made the change: systemd/systemd@ 97e5530 , and bug reports which gave the impetus for the change: https://bugs.freedesktop.org/show_bug.cgi?id=94508 , systemd/systemd#2900 .
Unfortunately this means starting tmux in the usual way is not effective, because it will be killed upon logout. There are a few option to avoid that, the best being:
systemd-run --scope --user tmux
This starts tmux as a scope unit under the systemd –user instance. It would be great if tmux could do this automatically. Probably the best way to do this would be to make the dbus call to org.freedesktop.systemd1.Manager.StartTransientUnit directly from tmux. See https://github.com/systemd/systemd/blob/master/src/run/run.c#L907 for how systemd-run does it, and https://www.freedesktop.org/wiki/Software/systemd/dbus/ for the description of the API.
转载本站任何文章请注明：转载至神刀安全网，谢谢神刀安全网 » Systemd developer asks tmux to add systemd specific code