tmux 会话无法从不同的入口点恢复到相同的状态?

tmux 会话无法从不同的入口点恢复到相同的状态?

我不知道这是否应该默认工作,但似乎当我尝试从一台机器或另一台机器恢复 tmux 会话时。我使用两种不同类型的 tmux 会话连接,一种来自 Cygwin 终端,另一种来自同一台计算机上的 Ubuntu VM。启动的会话是两个不同的会话。如果我删除会话中的所有窗口并断开与它的连接,则会创建一个全新的窗口,而不是以另一种连接方式连接到现有窗口。在这两种情况下,我都通过 ssh 连接到同一台服务器,然后运行tmux以下命令。我通常使用此命令恢复我的会话:

tmux a -d || tmux

编辑:我要么通过网络本身断开连接,Ctrl+a Ctrl+d要么只是通过网络本身断开连接,但如果我使用我最初使用的同一系统执行此操作,我可以随后恢复连接。如果我从 Cygwin 列出我的会话,我会得到:

 tmux ls
0: 1 windows (created Wed Apr 17 15:49:23 2013) [149x45]

如果我将其与 VM 一起列出,我会得到不同的结果:

 tmux ls
0: 19 windows (created Thu Apr 11 09:24:00 2013) [191x35]

我遗漏了什么参数吗?

答案1

这看起来像是套接字的问题——我怀疑在某个时候你创建了一个全新的 tmux,它在与原始套接字不同的套接字上监听(也许是在你登录时通过你的 shell 受到干扰?)并且现在有两个 tmux 服务器正在运行。

检查 /tmp(如果这是 tmux 服务器创建其套接字的地方)并且您应该能够确定这一点,以及“ps aux”的输出。

答案2

您不会每次都终止太多会话吧?按 CTRL-A CTRL-D 可脱离会话,而不是终止它。

连接后,使用 列出您的 tmux 会话tmux ls。记下此命令中的第一个数字,这就是您想要重新连接的数字。然后,要从任一机器连接到该会话,我们假设tmux attach -t 0您的 tmux 会话为 0。

相关内容