防止注销杀死tmux会话


13

我注意到,从X用户会话注销(注销)将杀死tmux我发起的任何会话,甚至包括我使用过的会话sudo tmux和类似命令。我确信以前没有发生过这种情况,但是最近发生的一些变化影响了这种行为。

即使结束X会话后,如何维护这些tmux(或screen)会话?



您从中注销的“ X用户会话”是什么?它的进程名称是...?
蒂姆(Tim)

虽然我认为这不是特别方便,但是您可以在X外部启动ttyx会话,即在tty1上,如下所述:unix.stackexchange.com/a/167388/67833
Rolf

Answers:


16

这种“功能”已经存在于systemd以前,但systemd开发商决定以实现预设的改变,以使在登录会话的出子进程终止的设置。

您可以在logind.conf/etc/systemd/logind.conf)中还原此设置:

KillUserProcesses=no

您还可以tmux使用systemd-run如下包装器运行:

systemd-run --scope --user tmux

对于这些系统,您可能只想别名tmux(或screen)命令:

alias tmux="systemd-run --scope --user tmux"

reddit线程中的其他讨论。
palswim

3
……以及其他许多地方。在提到的Debian错误中,我解释了人们实际上如何systemd-logind做正确的事情。 bugs.debian.org/cgi-bin/bugreport.cgi?bug=825394#221
JdeBP '18

@JdeBP感谢您告诉我们,发送SIGHUP而不是SIGTERM和SIGKILL允许守护程序在关闭systemd登录会话后幸存下来。如果您也可以考虑unix.stackexchange.com/questions/484344/…unix.stackexchange.com/a/490435/674-
蒂姆,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.