我在 Fedora 8 服务器(工作场所限制)上使用 tmux 来监控压力架上的多个盒子。我注意到tmux session
每个 shell 会话只能附加到我的分离一次。为了重新连接,我必须终止终端会话并启动另一个终端会话,否则我的attach
命令就会挂起(尽管Ctrl-b与d挂起的命令分离)。
以前有人见过这样的行为吗?任何指导或参考资料将不胜感激。
答案1
在我的 Shell 的配置文件中(我使用 zsh,所以它在我的 .zshrc 中,应该在 .bashrc 中工作)我有以下内容:
# Default to TMUX
if [ -z "$TMUX" ]; then
base_session=$USER"_session"
# Create the base session if it doesn't exist
tmux has-session -t $base_session || tmux new-session -d -s $base_session
# Get a count of clients connected
client_cnt=$(tmux list-clients | wc -l)
if [ $client_cnt -ge 1 ]; then
# Make a unique session name
session_name=$base_session"-"$client_cnt
# Create the new session based on the base_session
tmux new-session -d -t $base_session -s $session_name
# Launch the connection with a few caveats (kill the session when the client goes away)
tmux -2 attach-session -t $session_name \; set-option destroy-unattached
else
tmux -2 attach-session -t $base_session
fi
fi
现在,我可以使用 PuTTY 多次连接到一台服务器,并在所有窗口中查看相同的会话(并更改一个连接以显示不同的窗口)。我也想要
编辑
我想法这之前工作过一次,然后我才知道我一定还在screen
,所以我修复了这个来进行单独的会话。我发表了评论,如果您有任何疑问,请告诉我。现在有一个缺点,它会为两个窗口选择最小的尺寸。这没有帮助......我目前正在努力寻找解决方案。
编辑2
为了解决调整大小问题,请将以下行添加到您的.tmux.conf
文件中
set-option -g aggressive-resize on
答案2
可能是版本问题。您可以重新附加会话,但您将无法像使用 那样查看不同的窗口screen
。
要重新连接到会话:
$ tmux attach -t <session-name>
答案3
您可以尝试附加到会话并显式删除任何其他连接:
tmux a -d