GNU屏幕没有响应,似乎被阻止了

时间:2010-12-06 14:59:04

标签: linux freeze kill gnu-screen

GNU Screen似乎冻结了。无法输入用户输入。

我正在使用GNU屏幕,当我按下屏幕时,它变得没有响应。我可以执行所有GNU屏幕命令,但不能输入用户输入。我不想杀死这个屏幕,因为我有重要的工作,我不想失去它。

5 个答案:

答案 0 :(得分:113)

在下面的命令中,将 Ctrl 替换为屏幕命令的任何转义键。

尝试 Ctrl + a q ,这是解锁滚动的序列。

Ctrl + a s 是阻止滚动的序列,这使得屏幕看起来像是冻结。

答案 1 :(得分:58)

使用PuTTY 时,如果按ctrl + s,则可以获得明显冻结的屏幕。 这会发送Xoff signal阻止终端的输出。

解决方法是ctrl + q 发送Xon信号。

答案 2 :(得分:8)

如果这是你的问题,上述工作很有用。

如果你进入另一台机器并且暂时没有进入窗口,那么也可能发生这种情况,然后当你回去时它被冻结了。要解决此问题,您可以尝试以下方法:

1)创建一个新窗口

Ctrl-a c

2)ssh进入框中,然后你进入已冻结的窗口框中。

3)找到ssh运行的过程:

ps aux | grep <remote_box_on_frozen_screen>

ps aux | grep <your_user_id>

4)杀死过程

kill <process_id>

答案 3 :(得分:2)

执行screen -ls时,屏幕名称的第一个数字是进程ID。所以如果输出是

There is a screen on:
    21605.pts-0.Random-server   (11/12/2017 11:44:15 PM)    (Detached)
1 Socket in /var/run/screen/S-kg.

然后这将杀死它:

kill 21605

请注意,kill命令的编号与screen -ls输出中的编号相同。

答案 4 :(得分:0)

如果您在状态行中使用反引号命令-也就是说,如果您的.bat具有以下内容:

.screenrc

然后,您要确保脚本运行速度很快:显然,反引号执行会阻止所有IO进入屏幕。

如果您对配置进行更改,则需要重新启动屏幕会话(因为该配置仅适用于新会话)。