GNU 屏幕没有反应,好像被屏蔽了

GNU 屏幕似乎冻结。无法输入用户输入。

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

61052 次浏览

In the commands below, replace Ctrl with whatever your escape key is for screen commands.

Try Ctrl+a q, which is the sequence to unblock scrolling.

Ctrl+a s is the sequence that blocks scrolling, which makes screen seem like it freezes.

The above works great if that is your issue.

This could also happen if you're ssh'd into another machine and haven't been to the window in awhile, then when you go back it's frozen. To fix this, you can try the following:

1) Create a new window

Ctrl-a c

2) ssh into the box where you ssh'd into the box in the window that's frozen.

3) Find the process the ssh is running under:

ps aux | grep <remote_box_on_frozen_screen>

or

ps aux | grep <your_user_id>

4) Kill the process

kill <process_id>

When using PuTTY, you can get an apparently freezed screen if you press Ctrl+s. This sends an Xoff signal blocking the terminal's output.

The solution is to press Ctrl+q to send the Xon signal.

When you do screen -ls the first number of the screen name is the process id. So if the output is

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.

Then this will kill it:

kill 21605

Notice the number for the kill command is the same as in the screen -ls output.

If you are using backtick commands in status line - that is, if your .screenrc has something like this:

backtick 1 0 60 /some/script.sh

then you want to be sure that the script is fast: apparently backtick execution blocks all IO to screen.

If you make changes to the config, you'll need to restart the screen session (as the config applies only to new sessions).