GNU Screen似乎冻结了。无法输入用户输入。
我正在使用GNU屏幕,当我按下屏幕时,它变得没有响应。我可以执行所有GNU屏幕命令,但不能输入用户输入。我不想杀死这个屏幕,因为我有重要的工作,我不想失去它。
答案 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进入屏幕。
如果您对配置进行更改,则需要重新启动屏幕会话(因为该配置仅适用于新会话)。