Tmux 1.8崩溃了iOS Prompt应用程序。
但我需要1.8才能获得iTerm2集成。
所以我希望我能以某种方式使我的服务器能够运行两个tmux服务器。但是,当我运行1.8服务器时,看起来Tmux 1.6只是以状态码1退出。
我怀疑是否有人试图这样做,但我很好奇......
答案 0 :(得分:11)
您可以运行 tmux 的多个实例(甚至是不同版本),但它可能无法正常运行:它们将完全独立(不同的会话,窗口,窗格,选项值等) )。 -L
或-S
选项用于指定服务器套接字名称或路径名。
tmux new # new session in the server at the "default" socket
tmux -L other attach # new session in the server at the "other" socket
默认套接字和-L
套接字位于$TMPDIR/tmux-$UID/
,但如果您想自己指定完整路径名,则可以使用-S
。
当您在 tmux 会话“内部”时,TMUX环境变量指定服务器套接字的路径,因此如果您只是通常不需要指定套接字(路径)名称与“周围”服务器交谈:你可以使用tmux neww
在当前会话中创建一个新窗口(无论它使用什么套接字路径名)。
但是,尝试运行两个显着不同版本的 tmux 还有另一个问题。 tmux 二进制文件和正在运行的服务器必须使用相同的“协议版本”。由于一些内部更改,1.6和1.8版本使用不同的协议版本。这意味着您不能使用1.6二进制文件与1.8服务器(即使用1.8二进制文件启动的服务器)进行通信,反之亦然。因此,即使您可能不需要指定套接字名称(在会话“内部”运行命令时),您可能需要在尝试与不同服务器通信时指定二进制文件。
tmux attach # 1.8 talking to existing 1.8 "default" server
tmux-1.6 -L other attach # 1.6 talking to existing 1.6 "other" server
您可以通过设置环境变量并使用shell函数(或脚本,但注意不要创建无限循环)来简化一些事情。
tmux() { command "${TMUXBIN:-tmux}" "$@"; }