只能通过通过ssh
所以,我有我的本地机器上运行tmux
会话连接到本地TMUX会议,但我只能连接到它(或看到有关它的信息),如果我ssh
回到自己放在第一位:只能通过通过ssh
% tmux ls
failed to connect to server: Connection refused
% ssh localhost -t tmux ls
Password:
0: 2 windows (created Mon Nov 26 12:47:44 2012) [208x52] (attached)
Connection to localhost closed.
这还不是最坏的箍得跳通过,但为什么会发生,以及如何解决它?
对于其客户端/服务器通信,tmux在TMPDIR环境变量指定的目录下使用一个已命名的套接字(在基于UID的子目录中)。如果该环境变量未设置(或它是空的),则TMUX使用从paths.h
由_PATH_TMP
定义的目录;这往往是/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
的套接字,并向您显示它正在使用的套接字的路径。
TMUX管理下在/ var /运行/ TMUX的/ tmp/TMUX-USERID插座,每个插座连接到它
例如一个名字:
$ pwd
/tmp/tmux-2037
$ ls
default foo
$ tmux -L foo ls
0: 1 windows (created Tue Dec 4 13:36:10 2012) [172x52]
$ tmux -L default ls
0: 1 windows (created Tue Nov 20 16:21:14 2012) [188x47]
$ tmux ls
0: 1 windows (created Tue Nov 20 16:21:14 2012) [188x47]
看看在你下/VAR得到了什么/运行/ TMUX的/ tmp/TMUX-USERID,并尝试连接到由名字其中的一些插座,看看如果这是有利于您的问题(运行TMUX LS是一样的运行TMUX - 大号默认LS)
如果一切都失败了,完全分离tmux(关闭所有窗口并完全退出)然后rm/tmp/tmux-500/default可能是值得的,以查看当前问题是否有状态。
我在'/ var/run'目录下没有'tmux'目录(我正在使用'tmux' 1.6)。 – rampion
确认我们对此深感抱歉,我在寻找一个古代版的TMUX。看起来套接字已经迁移到/ tmp。 – hanumantmk
'/ tmp/tmux-500 /'中的唯一条目是'default',但'tmux -L default ls'仍然给我'连接失败:连接被拒绝。 – rampion