![Tmux 新会话返回:“无法创建套接字”](https://linux22.com/image/659642/Tmux%20%E6%96%B0%E4%BC%9A%E8%AF%9D%E8%BF%94%E5%9B%9E%EF%BC%9A%E2%80%9C%E6%97%A0%E6%B3%95%E5%88%9B%E5%BB%BA%E5%A5%97%E6%8E%A5%E5%AD%97%E2%80%9D.png)
我意外终止了一个byobu
会话(kill -9 byobuSessionId),现在当我尝试启动另一个byobu
命令时失败,并显示“无法创建套接字”。
还tmux new-session
返回:“无法创建套接字”
我尝试过sudo service screen-cleanup start
但是没有成功!
知道如何解决吗?
答案1
如果你检查输出,问题可能是由死机的 tmux 进程引起的 strace -f -e trace=文件 tmux命令。
你会看到 tmux 创建的套接字文件,在我的例子中,它位于 /tmp//tmux-1001/默认/
您只需删除该文件并再次运行屏风命令。
答案2
检查目录的权限/tmp/tmux*/
。它们应该归您所有,并且其他任何人都无法访问。
因此将权限更改为:
chmod 700 -R /tmp/tmux*
重要的是,套接字目录归您所有,并且不是每个人都可以访问,否则任何用户都可能使用您的 tmux 服务器。有一段时间,tmux 错误地跳过了访问模式检查,这个问题在 2.0 中得到了修复。
如果您的系统不支持在 /tmp 中创建具有正确所有权的目录,则必须使用 -S 将其明确指向套接字。检查很重要,我们不支持没有 Unix 文件权限语义的系统。
答案3
我遇到了同样的问题,以下是我的解决方案:
- 新建一个文件夹:
/tmp/$(id -u)
- 更改所有者:
chown -R $(id -nu):$(id -nu) /tmp/$(id -u)
- 更改权限:
chmod -R 700 /tmp/$(id -u)
有用!
答案4
在 Mac 上,这些命令可以达到这样的效果:
sudo rm -r '/tmp/tmux-'$(id -u)
sudo chmod -R 4777 /tmp/