38

我已经在 Fedora 的本地空间中从源代码安装了 tmux。到目前为止,它运行良好。但是突然不能再运行了,当运行 tmux 时,它就停止了。尝试了不同的命令选项,如 ls-sessions,没有一个有效。杀死我用户的所有进程,删除 tmux 和 的所有文件libevnet,然后从头开始重新安装它们。还是一样,终端中的 tmux 命令只是冻结而没有任何实际错误。

4

8 回答 8

59

我遇到这个问题很长时间了,经过一番搜索,我发现这是因为我不小心点击了Ctrl+ SCtrl+ A+S是我切换窗格的快捷方式),这会关闭终端中的流量控制并停止终端接受输入。它可以通过按Ctrl+重新启用Q

来源: https ://superuser.com/a/553349/137226

于 2014-09-17T16:43:48.970 回答
41

有一个类似的问题,我有一个带有两个缓冲区的 tmux 会话。我没有看到我输入的任何内容,但是当我在缓冲区之间切换时,我之前输入的内容会出现在屏幕上。stty sane没用。

我分离了Ctrl-b+ d,并注意到当我查看时仍然连接了一个客户端tmux list-clientstmux detach-client删除它,然后我可以重新连接,一切都恢复了。

于 2016-11-14T04:38:46.303 回答
11

如果可以丢失会话,请尝试删除目录下的tmux-NNNNNNN目录,其中NNNNNNN是数字/tmp。根据tmux手册,如果TMPDIR设置了环境变量,tmux-NNNNNNN则会将TMPDIR.

tmux 将服务器套接字存储在 /tmp (或 TMPDIR 如果设置)下的目录中;

这解决了我无法运行tmux与会话相关的命令的问题。我也尝试了以下方法,但没有奏效:

  • killall -9 tmux
  • reinstall tmux
  • restart shell session

I could not easily restart the operating system, because it's a shared server managed by others.

于 2018-10-09T15:15:27.727 回答
9

tmux在我开始之后就停止了。Ctrl-Q并且Ctrl-C什么也没做。

固定与

killall -9 tmux

(可能是一个不同的问题,但这个问题出现在谷歌中。)

于 2015-10-01T16:01:24.533 回答
7

我遇到过同样的问题。原因是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 帮助我解决这个问题!

于 2018-05-30T12:06:49.077 回答
3

您应该能够通过以下一些测试来缩小您的问题范围:

  1. 从 X11 外部试一试:++ Ctrl(或从另一台计算机使用)AltF2ssh

  2. 测试其他终端仿真器是否工作:scriptscreen

  3. 尝试另一个复杂的终端应用程序:htopmc

  4. 重置您的 TTY 设置:stty sane

  5. 检查您的终端是否已识别:(echo $TERM它应该类似于“xterm”或“linux”)

  6. 使您的终端功能文件存在:ls -lh /usr/share/terminfo/*/$TERM

于 2011-09-14T01:11:14.197 回答
3

谢谢。我发现了问题。tmux 进程处于 D 状态,我只好重启系统。问题来自 kerberos 票证在一段时间后到期。并找到解决此问题的脚本: https ://iain.cx/src/ktmux/

于 2011-09-15T19:17:53.943 回答
2

A less drastic action (to try before killing the tmux process) is to ssh into the machine and run the following command.

kill -CONT `pidof tmux`

Source: https://github.com/tmux/tmux/issues/507#issuecomment-271502093

于 2019-02-22T15:49:44.907 回答