我希望 /tmp/shared 中的套接字上始终有一个 tmux 会话,会话为 0。这样,我就可以始终通过 SSH 连接到该会话:
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
检查会话状态的几种方法:
- 您可以创建一个 cron,但由于最低 1 分钟规则,它会延迟共享会话的创建。
- init.d 脚本将其作为服务运行,类似于这个
- 您可以安装supervisord并使用它来自动守护您的共享会话创建脚本
去年我用过伴侣作为守护进程运行。您可以使用守护进程化的 tmate 创建 tmate 服务器并从不同的机器附加会话。但我无法保证安全性,因为我在私有网络中使用了它们。
答案2
以下附加到会话 0 或创建一个新会话:
tmux new-session -t 0 || tmux
我认为您无法创建具有特定会话编号的会话,因此您可能需要考虑使用会话名称。但是,自定义套接字可能足以满足您的情况。
我在这里假设如果会话 0 不存在那么它将被创建。