ssh "tmux a || tmux" 有时有效吗?

ssh "tmux a || tmux" 有时有效吗?

此命令始终有效(使用 sh 或 bash):

ssh -t HOST sh -c "tmux a 2>/dev/null || tmux"

这些方法大约有一半的时间会失败:

ssh -t HOST -- "tmux a 2>/dev/null || tmux"
ssh -t HOST "tmux a 2>/dev/null || tmux"

tmux 出现错误,或者server exited unexpectedlylost server。 (测试时没有打开 tmux 会话,因此它始终运行这两个命令。)

为什么他们会失败,而且只是有时失败,但并非总是失败?

答案1

我想我找到了答案:

attach-session [-dErx] [-c working-directory] [-t target-session]
              (alias: attach)
        If no server is started, attach-session will attempt to start it; this will 
        fail unless sessions are created in the configuration file.
  • tmux a不仅尝试连接,还启动 tmux 服务器(失败并开始关闭)。
  • tmux命令尝试创建一个新会话。有时服务器进程tmux a仍然存在,因此它与该服务器通信
  • 最后,服务器进程退出并tmux失败并显示server exited unexpectedly消息。

相关内容