解决tmux启动「can't create socket」的问题

Tmux是终端重度用户的好帮手,你再也不用担心以下问题:

  • 任务运行一半要下班,发现忘记使用nohup
  • 网络不稳定, 终端会掉线
  • 有人找我开会,切换有线、无线会掉线
  • ……

我入职以后,一直在开发机里面使用tmux和screen(在我发现tmux之前)。最近越来越多人在开发机上部署任务,导致这台机器和它的宿主机经常出问题(偶尔hang住,无法ping通等等)。最近一次重启宿主机之后,启动tmux时会报以下错误:

写道
can't create socket

看来像是某次重启时,文件没有关闭造成的。

然后在 这里 找到了答案,使用 strace命令,可以看程序执行时进行的操作和报错的情况:

写道
strace -e trace=file tmux
扫描二维码关注公众号,回复: 646806 查看本文章

在我这里,执行的结果如下:

写道
open("/lib64/tls/libpthread.so.0", O_RDONLY) = 3
access("/bin/bash", X_OK) = 0
access("/home/xxx/.tmux.conf", R_OK) = -1 ENOENT (No such file or directory)
mkdir("/tmp//tmux-501", 0700) = 0
lstat("/tmp//tmux-501", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
can't create socket
Process 3171 detached

 看起来是「/tmp/tmux-501」这个目录出了问题,删掉这个目录,tmux就可以正常启动了。

附上一个tmux和screen常用功能的快捷键及其对比,最常用的就是 「tmux attach」和「screen -r」了.

猜你喜欢

转载自lisztli.iteye.com/blog/2034096