Экран GNU не отвечает, кажется, заблокирован

88

Экран GNU зависает. Невозможно ввести данные пользователя.

Я использовал экран GNU, и когда я нажал на экран, он перестал отвечать. Я могу выполнять все экранные команды GNU, но не могу вводить данные пользователя. Я не хочу убивать этот экран, потому что у меня важная работа, и я не хочу ее терять.

сирус
источник
См. Также unix.stackexchange.com/questions/6660/…
Дэниел Рейс,

Ответы:

132

В приведенных ниже командах замените Ctrlлюбой клавишей ESC для экранных команд.

Попробуйте Ctrl+ a q, это последовательность для разблокировки прокрутки.

Ctrl+ a s- это последовательность, которая блокирует прокрутку, из-за чего экран кажется зависшим.

wkl
источник
Ну, сработало, но только на одном экране, на другом
вышло
7
Вы, сэр, просто сделал мой день :) Документация по экрану GNU не появилась при поиске в Google "gnu screen freeze": /
david_p
1
У меня такая же проблема. Заморозился только один экран, что заставило меня поверить, что проблема связана с конкретным экраном. Действительно, я случайно нажал Ctrl-A s.
smithfarm 06
Я так привык использовать CTRL + A, чтобы перейти к sudoначалу командной строки и добавить (так как я забыл начать с него), что, когда я использую экран, я все время его блокирую! Как сказано в предыдущем комментарии, в CTRL+A qосновном работает, иногда есть экран. Хотелось бы, чтобы CTRL + A не был по умолчанию, на серверах, которые я использую много, я меняю его на клавишу «ESC».
johnnyB 02
1
Объедините этого мерзкого зверя с ужасным Ctrl + S PuTTY, который отправляет XOFF, и это действительно заставляет меня бояться буквы s на моей клавиатуре. Это зло. Как ни странно, нажатие клавиши PuTTY - Ctrl + Q для отправки XON ... «q» - спаситель. Спасибо, 6-летний ответ.
JNevill
67

При использовании PuTTY вы можете получить явно замороженный экран, если нажмете Ctrl+ s. Это отправляет Xoffсигнал, блокирующий выход терминала.

Решение - нажать Ctrl + qдля отправки Xonсигнала.

Даниэль Рейс
источник
Также у меня работал на ROXTerm в Linux - экран был заблокирован, и мне было предложено войти в систему.
Pocketsand
Спас мой день (и ночь).
sk
8

Вышеупомянутое отлично работает, если это ваша проблема.

Это также может произойти, если вы подключились по ssh к другой машине и какое-то время не были в окне, а затем, когда вы вернетесь, он завис. Чтобы исправить это, вы можете попробовать следующее:

1) Создайте новое окно

Ctrl-a c

2) ssh в поле, где вы ssh в поле в замороженном окне.

3) Найдите процесс, под которым работает ssh:

ps aux | grep <remote_box_on_frozen_screen>

или

ps aux | grep <your_user_id>

4) Убейте процесс

kill <process_id>
Hazok
источник
Не знаю, как я довел что-то до такого безответного состояния, поскольку обычно ctrl-q у меня работает, но мне пришлось сделать это и потерять свою работу. +1 за совет
о
2
Чаще всего любое замороженное соединение SSH можно принудительно закрыть, нажав Enter, затем ~и затем .(см. Также здесь ).
fotNelton 02
3

Когда вы делаете screen -lsпервое число экранного имени, это идентификатор процесса. Итак, если на выходе

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выводе.

Пилинукс
источник
2

Если вы используете команды обратной кавычки в строке состояния - то есть, если у вас .screenrcесть что-то вроде этого:

backtick 1 0 60 /some/script.sh

тогда вы хотите быть уверены, что сценарий работает быстро: очевидно, выполнение обратного апострофа блокирует весь ввод-вывод на экран.

Если вы внесете изменения в конфигурацию, вам нужно будет перезапустить сеанс экрана (поскольку конфигурация применяется только к новым сеансам).

Писквор вышел из здания
источник