val*_*dil 2 arch-linux tmux systemd
我明白为什么 systemd 在我登出时想要杀死我的东西。我想为 tmux 做个例外。这是我到目前为止所得到的:
/etc/logind.conf
[Login]
KillUserProcesses=no
Run Code Online (Sandbox Code Playgroud)
.xinitrc
loginctl enable-linger $USER
Run Code Online (Sandbox Code Playgroud)
还有别名...
$ alias tmux
tmux='systemd-run --scope --user tmux'
Run Code Online (Sandbox Code Playgroud)
各种谷歌搜索告诉我,每一个都应该独立工作。从来没有。我可以使用其他一些设置来保留我的 tmux 会话吗?
众所周知,systemd 会这样做,这是设计使然。您还可以在您的日志 (do journalctl -xe
) 中看到它如何终止您的进程。
我刚刚在 askubuntu 上发布了以下答案,但我将在此处重现,因为这将成为更多基于 systemd 的发行版的问题:
事实证明,当您的会话结束时,systemd 会终止您的所有用户进程,例如,当您终止 SSH 登录时,因为您认为稍后将使用 tmux 重新附加。;)
要修复,请执行以下所有步骤:
/etc/systemd/logind.conf
:KillUserProcesses=no
KillExcludeUsers=root YOUR_USER_NAME
Run Code Online (Sandbox Code Playgroud)
...并使用以下命令重新启动 systemd-logind sudo systemctl restart systemd-logind
loginctl enable-linger YOU_USER_NAME
Run Code Online (Sandbox Code Playgroud)
我最初只启用了延迟和KillUserProcesses=no
,但我的 tmux 仍然被杀死。只有在我修改之后KillExcludeUsers
(感谢https://askubuntu.com/a/1097134/59971)我才能安心地继续我的神经网络训练。