Ssh

ssh ’tmux a || tmux’ 有時有效?

  • September 29, 2020

此命令始終有效(使用 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 unexpectedly要麼lost server. (測試時沒有打開的 tmux 會話,所以它總是執行兩個命令。)

為什麼他們會失敗,只是有時會失敗,但並非總是如此?

我想我找到了答案:

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消息。

引用自:https://unix.stackexchange.com/questions/611985