具有共享套接字的持久性 tmux 會話

具有共享套接字的持久性 tmux 會話

我希望 /tmp/shared 中的套接字上始終有一個會話為 0 的 tmux 會話。

ssh [email protected] -t tmux -S /tmp/shared attach-session -t 0

我希望它可以與其他用戶共享,並且如果知識較少或粗心的用戶在離開會話時使用 exit 而不是 [ctrl] + d ,則能夠重新創建它自己。

我確信可以在 cron 中做到這一點,但我不知道沒有更好的方法。

答案1

建立由選定使用者共同群組擁有的套接字檔案並使用會話名稱會比使用會話號碼更好。

/// Create session
tmux -S /tmp/shareds new -s sharedsession
/// Change ownership to group
chgrp mutual_group_name /tmp/shareds
/// Run this in other user or ssh session to attach yourself
tmux -S /tmp/shareds attach -t sharedsession

檢查會話狀態的幾種方法:

  1. 您可以建立一個 cron,但由於最小 1 分鐘規則,它會延遲共用會話的建立。
  2. init.d 腳本將其作為服務運行,類似於這個
  3. 您可以安裝supervisord並使用它來自動守護您的共用工作階段建立腳本

去年我用過特馬特作為守護程序運行。您可以使用守護程序 tmate 從不同的電腦建立 tmate 伺服器和附加會話。但我不能保證這個安全性,因為我在專用網路中使用它們。

答案2

以下內容附加到會話 0 或建立一個新會話:

tmux new-session -t 0 || tmux

我認為您無法使用特定會話號碼建立會話,因此您可能需要考慮使用會話名稱。然而,自訂套接字可能足以滿足您的情況。

我在這裡假設如果會話 0 不存在,它將被創建。

相關內容