クライアント/サーバー通信のために、tmuxは、TMPDIR 環境変数で指定されたディレクトリの下にある名前付きソケット (UID ベースのサブディレクトリ内) を使用します。この環境変数が設定されていない (または空である) 場合、tmux_PATH_TMP
はfrom で定義されたディレクトリを使用しpaths.h
ます。これはよくあり/tmp
ます。
注: 以下の「セッション」の使用は、 tmuxセッションではなく、ログイン セッションを指します。
私の推測では、あなたのsshセッションは共通の TMPDIR 値を共有している (おそらくまったく持っていない) のに対し、「通常の」セッションは異なる TMPDIR 値を使用していると思います。TMPDIR 値はセッションごとに異なるため、あるセッション タイプのクライアントは、別のセッション タイプで開始されたサーバーを直接「見る」ことができません (たとえば、クライアントは を使用しようとし/var/folders/random/directories/tmux-500/default
ますが、サーバーは をリッスンしています /tmp/tmux-500/default
)。
この問題を解決するには、TMPDIR をsshセッションの通常の状態に合わせて調整するだけです。
TMPDIR=$(/usr/bin/ssh localhost -t 'echo $TMPDIR') && export TMPDIR
クライアントが使用しようとしているパスは、次のように判断できます。
tmux -L temp start\; info | grep path
temp
これにより、の代わりにという名前のソケットを使用してエバネッセント サーバーが作成され、使用しているソケットdefault
へのパスが表示されます。