8

Tmux 1.8 は iOS Prompt アプリをクラッシュさせます。

しかし、iTerm2 統合を取得するには 1.8 が必要です。

だから私はどうにかして私のサーバーが2つのtmuxサーバーを実行できるようにしたいと思っています。ただし、1.8 サーバーを実行している場合、Tmux 1.6 は単にステータス コード 1 で終了するようです。

誰かがこのようなことを試みたとは思えませんが、興味があります...

4

1 に答える 1

14

tmuxの複数のインスタンス(バージョンが異なっていても) を実行できますが、期待どおりに動作しない場合があります。それらは完全に独立しています (異なるセッション、ウィンドウ、ペイン、オプション値など)。-Lorオプションは、-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現在のセッションで新しいウィンドウを作成するために使用するだけです(使用しているソケットのパス名に関係なく)。

ただし、2 つの大幅に異なるバージョンの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

環境変数を設定し、シェル関数 (またはスクリプト、ただし無限ループを作成しないように注意してください) を使用することで、物事を少し単純化できる場合があります。

tmux() { command "${TMUXBIN:-tmux}" "$@"; }
于 2013-04-04T07:03:20.577 に答える