当没有正在运行的会话时,Tmux无法连接到`tmux ls`上的服务器错误

eco*_*omy 4 bash tmux

我在登录服务器时写一个快速循环来列出现有的tmux会话,具体取决于是否安装了tmux(通过CentOS上的.bashrc).

if rpm -q tmux; then
    echo -e "TMUX sessions running:\n"
    echo `tmux ls`
fi
Run Code Online (Sandbox Code Playgroud)

当tmux有一两个会话时,这很有用,但是如果没有正在运行的tmux会话,我就会得到failed to connect to server: No such file or directory.

有没有办法压制这个?

谢谢!

dla*_*and 22

请注意,您可能正在运行tmux服务器,但无法连接到该服务器,因为有人清理了/tmp目录并使用服务器的套接字.

在这种情况下,您可以通过向服务器发送SIGUSR1信号来告诉服务器重新创建套接字.

% ps aux | grep -w [t]mux
root     14799  0.2  0.0  36020   488 ?        Ss   May08  51:30 tmux
% kill -USR1 14799
% tmux ls
<list of tmux sessions>
Run Code Online (Sandbox Code Playgroud)


eco*_*omy 4

结合使用 @Barmar 和 @Etan Reisner 的建议:

tmux ls 2> /dev/null
Run Code Online (Sandbox Code Playgroud)

当没有会话时,不会回显任何内容,否则会报告列表。