ken*_*nny 23 macos putty zsh iterm tmux
我最近从使用屏幕切换到tmux(通过macports获得),因为我更喜欢功能集.但是,我似乎无法从备用位置重新连接tmux,就像我可以屏幕一样.
在我的Mac上,我将打开iTerm2,我的默认shell是zsh,我将开始一个tmux会话tmux.我将所有的吐痰设置,ssh到适当的服务器等,并工作了一段时间.是时候去上班了.<C-a> d - tmux分离.
我开始工作,我使用的是Windows XP机器.我打开腻子,ssh回到家里的mac,尝试一下tmux attach,并收到一条错误信息:
no sessions
我似乎无法确定为什么会发生这种情况.我并不害怕深入研究,但甚至不知道从哪里开始.思考?
PS我已经删除了我的.tmux.conf文件,所以它使用的是默认配置.
Dan*_*mov 34
在我的情况下,显然临时文件夹已被清理.
这篇博文帮助我恢复了我的"迷失"会话:
我终于得到了解决方案:发送信号10强制tmux重新创建套接字.之后我可以再次运行tmux而不会丢失我的会话:
Run Code Online (Sandbox Code Playgroud)$ killall -10 tmux
Chr*_*sen 21
tmux将其服务器套接字存储在TMPDIR环境变量指定的目录下的目录中.
在您的GUI会话中,您最终可能会得到指向/var(例如/var/folders/mV/mVip4IQ4EXOriTiLJmeSuk+++Tc/-Tmp-/)某处的TMPDIR .
当您通过SSH登录时,可能最终没有设置TMPDIR,因此tmux会查找/tmp/其套接字.
在10.6的系统,这里是我的TMPDIR与zsh的 / 终端,并与zsh的/SSH:
% echo local: ${TMPDIR-unset}; ssh localhost 'echo remote: ${TMPDIR-unset}'
local: /var/folders/mV/mVip4IQ4EXOriTiLJmeSuk+++Tc/-Tmp-/
remote: unset
Run Code Online (Sandbox Code Playgroud)
如果您知道需要为TMPDIR使用的值,则可以在附加时指定它(或在会话本身之外运行其他一些tmux命令):
TMPDIR=/var/folders/mV/mVip4IQ4EXOriTiLJmeSuk+++Tc/-Tmp-/ tmux attach
Run Code Online (Sandbox Code Playgroud)
如果您不知道GUI会话正在使用的目录,您可以使用类似的内容找到它(该语法特定于zsh ;它在下面搜索/var/folders/名为-Tmp-当前用户所拥有的目录):
echo /var/folders/**/*/-Tmp-(U/)
Run Code Online (Sandbox Code Playgroud)
为避免将来出现问题,您可能需要在启动服务器之前取消设置TMPDIR(或将其设置为您可以更容易预测的内容).
该-U的选项lsof列表开放套接字文件,那么lsof -U | grep '^tmux'会列出所有正在使用的插座TMUX.如果您没有以启动tmux的同一用户身份登录,则需要使用sudo.
每行的最后一列是文件的名称.你关心的文件以a开头/.
您正在寻找的行将如下所示:
tmux 1234 username 6u unix 0xffffffabcd123456 0t0 /private/var/folders/M8/M8tFwolmH08fOvJ+-35VI++++TM/-Tmp-/tmux-502/default
tmux 56789 username 6u unix 0xffffff123456789a 0t0 /private/tmp/tmux-502/default
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12645 次 |
| 最近记录: |