我在Fedora的本地空间安装了源代码中的tmux。到目前为止它工作得很好。但突然无法再运行了,当运行tmux时,它就停止了。尝试了不同的命令选项,如ls-sessions,无效。杀死了我的用户的所有进程,删除了tmux和libevnet
的所有文件,并从头开始重新安装它们。仍然相同,终端中的tmux命令只是冻结而没有任何实际错误。
答案 0 :(得分:40)
我长时间遇到这个问题,经过一番搜索后我发现这是因为我意外地命中了 Ctrl + S ( Ctrl + A + S 是我切换窗格的快捷方式),这将关闭终端中的流量控制并阻止终端接受输入。可以通过按 Ctrl + Q 重新启用它。
答案 1 :(得分:27)
有一个类似的问题,我有一个带有两个缓冲区的tmux会话。我没有看到我输入的任何内容,但当我在缓冲区之间切换时,我之前键入的内容将显示在屏幕上。 stty sane
没有用。
我分离了 Ctrl-b + d ,并注意到当我查看tmux list-clients
时仍然附着了一个客户端。 tmux detach-client
删除了它,然后我可以重新连接,一切都恢复了。
答案 2 :(得分:5)
tmux
正在停止。 Ctrl-Q 和 Ctrl-C 没有做任何事情。
已修复
killall -9 tmux
(可能是另一个问题,但这个问题出现在谷歌。)
答案 3 :(得分:3)
我有同样的问题。原因是tmux
缓冲区已满,并且可能会导致多个客户端进入tmux
会话。
要解决此问题,您需要从会话中分离所有客户端,然后重新连接它。
我找到解决问题的最佳方法是将~/.bashrc
文件添加到此函数中:
check_params() {
if [[ $1 < $2 ]]; then
echo -e "Usage:\n${3}"
ok=0
else
ok=1
fi
}
# detach all the clients from this session, and attach to it.
reattach_client() {
check_params $# 1 "reattach_client <tmux_session_name>"
if [[ $ok == 1 ]]; then
tmux list-client | grep $1 | awk '{split($1, s, ":"); print s[1]}' | xargs tmux detach-client -t | true
tmux attach -t $1
fi
}
然后运行source ~/.bashrc
以在终端中进行这些更改。
现在附加会话类型:
reattach_client <session_name>
解决了我的问题。
感谢Alex Zelichenko帮我解决这个问题!
答案 4 :(得分:3)
如果可以丢失会话,请尝试删除tmux-NNNNNNN
目录下的NNNNNNN
目录,其中/tmp
是数字。根据{{1}}手册,如果设置了tmux
环境变量,则TMPDIR
将放在tmux-NNNNNNN
中。
tmux将服务器套接字存储在/ tmp(或设置为TMPDIR)下的目录中;
这解决了我无法运行与会话相关的TMPDIR
命令的问题。我也尝试了以下方法,但是它们没有用:
tmux
killall -9 tmux
我无法轻易重启操作系统,因为它是由其他人管理的共享服务器。
答案 5 :(得分:2)
您应该能够通过以下几项测试来缩小您的问题范围:
从X11外部拍摄: Ctrl + Alt + F2 (或使用另一个人的ssh
计算机)
测试其他终端模拟器是否有效:script
和screen
尝试其他复杂的终端应用:htop
和mc
重置您的TTY设置:stty sane
检查您的终端是否已识别:echo $TERM
(它应该类似于“xterm”或“linux”)
使您的终端功能文件存在:ls -lh /usr/share/terminfo/*/$TERM
答案 6 :(得分:2)
感谢。 我发现了这个问题。 tmux进程处于D状态,我别无选择,只能重启系统。 问题来自于kerberos门票一段时间后到期。并找到解决此问题的脚本: https://iain.cx/src/ktmux/
答案 7 :(得分:1)
(在终止tmux进程之前尝试的)较不激烈的动作是SSH进入计算机并运行以下命令。
kill -CONT `pidof tmux`
来源:https://github.com/tmux/tmux/issues/507#issuecomment-271502093