使用pkill -f tmux关闭Tmux会话后创建新会话报错,求解决方法
解决Tmux创建会话时的嵌套错误
这个问题我碰到过好几次,本质是你的当前shell还残留着Tmux的环境变量——虽然你用pkill -f tmux干掉了所有Tmux会话和服务器,但启动当前shell的那个Tmux环境变量还没清掉,Tmux误以为你要在已有会话里嵌套新会话,所以抛出了这个警告。
下面给你两种快速解决的方法:
方法一:手动清除Tmux环境变量
直接在当前shell里执行以下命令,先清空TMUX变量再创建新会话:
unset TMUX tmux new -s alex
执行完unset TMUX后,你可以用echo $TMUX验证一下,输出为空就说明变量已经清掉了,这时候再创建会话就正常了。
方法二:退出当前shell重新打开
如果unset变量后还是不行,说明当前shell本身就是原来Tmux会话的子进程(虽然会话没了,但shell还活着)。这时候最简单的方式就是:
- 执行
exit退出当前终端shell - 重新打开一个新的终端窗口
- 再运行
tmux new -s alex就能正常创建会话了
额外小提示
以后关闭Tmux会话更稳妥的方式其实是用Tmux自带的命令,比如:
- 关闭单个会话:
tmux kill-session -s 会话名 - 关闭所有会话:
tmux kill-server
这样就不会残留环境变量的问题啦~
内容的提问来源于stack exchange,提问作者Alex Rozhnov
相关产品推荐
相关产品推荐

