具有共享套接字的持久 tmux 会话

Jac*_*son 2 linux tmux

我希望 /tmp/shared 中的套接字上始终有一个 tmux 会话,会话数为 0。这样我就可以始终通过 SSH 连接到会话:

ssh user@www.example.com -t tmux -S /tmp/shared attach-session -t 0
Run Code Online (Sandbox Code Playgroud)

我希望它可以与其他用户共享,并且如果知识较少或粗心的用户在离开会话时使用 exit 而不是 [ctrl] + d ,则能够重新创建它自己。

我确信可以在 cron 中做到这一点,但我不知道没有更好的方法。

小智 6

创建由选定用户共同组拥有的套接字文件并使用会话名称会比使用会话号更好。

/// 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
Run Code Online (Sandbox Code Playgroud)

检查会话状态的几种方法:

  1. 您可以创建一个 cron,但由于最小 1 分钟规则,它会延迟共享会话的创建。
  2. init.d 脚本将其作为服务运行,与此类似
  3. 您可以安装supervisord并使用它来自动守护您的共享会话创建脚本

去年我使用tmate作为守护进程运行。您可以使用守护进程 tmate 从不同的计算机创建 tmate 服务器和附加会话。但我不能保证这个安全性,因为我在专用网络中使用它们。