如何确保 tmux 在会话超时时断开连接,而不是退出

如何确保 tmux 在会话超时时断开连接,而不是退出

合规性要求 ssh 会话超时时间为 10 分钟。

我想使用 tmux 这样就不会丢失长时间运行的进程的标准输出。

[ -n "$PS1" -a -z "$TMUX" ] && exec tmux new-session -A -s main

我期望的是,当我重新连接时,我将重新连接到名为 main 的现有会话。

实际情况是,当 sshd 检测到我已经空闲了 10 分钟时,它会结束会话而不是断开连接。

如何确保会话超时时 tmux 断开连接而不是退出。

编辑:
断开会话然后重新连接到系统即可按预期工作。

此外,我过去曾使用 tmux 来实现这一点,它会忠实地将我重新连接到我的会话。我将上面的行注释掉了几个星期,当我重新启用它时,当前的行为已经开始了。不过我认为之前没有强制执行超时。所以我猜这意味着 SSH 正在关闭会话而不是断开连接。

答案1

不确定为什么sshd会结束会话,但你可以使用tmux插件复活连续体将会话状态持续存储tmux在磁盘上。

一旦因超时而被踢出,您可以重新连接并tmux再次开始新会话。如果所有设置都正确,则 continuum 插件将自动恢复您的上一个会话(包括窗格、窗口等...)

但是,现在我已经写完了,我不确定是否stdout还保留着。也许最好将其写入日志文件(或syslog),然后从那里读取?

相关内容