我在通过 ssh 访问的远程计算机上使用 tmux。由于某些原因,tmux 会话在连续的 ssh 登录会话之间不会持续存在。我在登录我有权访问的另一台远程计算机时没有遇到此问题。这本质上与这个问题中描述的问题相同。
但是,我使用的机器已经使用ssh.service而不是ssh.socket,所以接受的答案对我不起作用。
采取的具体步骤:
经过一番研究,我找到了解决我的问题的方法。
终止 tmux 会话的原因是KillUserProcesses=yesin的默认设置/etc/systemd/logind.conf。
从 的手册页来看logind.conf,
KillUserProcesses= 采用布尔参数。配置用户注销时是否应终止用户的进程。如果为 true,则与会话对应的范围单元以及该范围内的所有进程都将终止。
解决方案是使用以下命令在用户范围而不是会话范围中显式启动 tmux。
systemd-run --scope --user tmux
Run Code Online (Sandbox Code Playgroud)
此外,您需要启用“延迟”,以便即使没有活动用户会话,tmux 进程也可以持续存在。
loginctl enable-linger
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请查看systemd-run手册页中的示例。
| 归档时间: |
|
| 查看次数: |
5234 次 |
| 最近记录: |