调试冻结的 Gnu 屏幕会话?

调试冻结的 Gnu 屏幕会话?

我们一直在使用跳转盒上的 GNU 屏幕来打开我们私有网络内多个主机的 ssh 会话。每个主机一个窗口。

最近我们构建了一个新环境,并经常遇到屏幕挂起的情况。最常见的情况是,当大量终端输出被后台打印到屏幕上(例如,cat 文件)时,屏幕会变得无响应。终端在命令中途停止更新,我无法切换到任何其他屏幕窗口。

我可以再次登录跳转箱,然后执行 screen -dr ,它就像什么事都没有发生一样连接起来。我们使用的 .screenrc 是:

bindkey -k k2 screen
bindkey -k k3 prev
bindkey -k k4 next
bindkey -k k7 copy
bindkey -k k8 title
bindkey -k k9 windows
startup_message off
hardstatus alwayslastline
hardstatus string "%-w%{= BW}%50>%n %t%{-}%+w%<"
nonblock on

当屏幕会话像这样冻结时,您能否建议我应该查看什么来找出原因,因为我相当困惑?

这是在 debian wheezy 下,screen=4.1.0~20120320gitdb59704-7,如果相关的话,这些是 EC2 实例。

答案1

有时,您使用的 xterm 会Ctrl-S从正在解析的任何输出中获得一个。这会导致会话“锁定”在原地(就像“暂停”一样),您可以点击Ctrl-Q恢复。有到过 一些 实例发生这种情况的地方。

历史: Ctrl-S向远程主机发送“软件流控制关闭(XOFF)”,Ctrl-Q发送 XON。

SSH 提示:如果上述方法不起作用;下次 SSH 会话挂起时,请键入~.(“Tilde”和“dot”。这应该可以终止挂起的 SSH 会话并让您返回屏幕。

相关内容