A tela GNU não responde, parece bloqueada

88

A tela GNU parece congelar. Incapaz de inserir a entrada do usuário.

Eu estava usando a tela GNU e, quando a pressionei, ela parou de responder. Posso executar todos os comandos de tela GNU, mas não consigo inserir a entrada do usuário. Não quero apagar esta tela porque tenho um trabalho importante e não quero perdê-lo.

vírus
fonte

Respostas:

132

Nos comandos abaixo, substitua Ctrlpor qualquer que seja a sua tecla de escape para comandos de tela.

Tente Ctrl+ a q, que é a sequência para desbloquear a rolagem.

Ctrl+ a sé a sequência que bloqueia a rolagem, o que faz a tela parecer que está congelando.

wkl
fonte
Bem, funcionou, mas apenas em uma tela, na outra ele saiu :(
vírus
7
Senhor, acabei de fazer o meu dia :) A documentação da tela GNU não apareceu ao pesquisar "gnu screen freeze" no Google: /
david_p
1
Eu tive o mesmo problema. Apenas uma tela estava congelada, o que me fez acreditar que o problema era "específico da tela". Na verdade, eu acidentalmente pressionei Ctrl-A s.
Smithfarm
Estou tão acostumado a usar CTRL + A para ir para a frente da linha de comando para adicionar sudo(já que esqueci de começar com ele) que, quando estou usando a tela, eu bloqueio o tempo todo! Como o comentário anterior diz, CTRL+A qprincipalmente funciona, às vezes existe a tela. Gostaria que CTRL + A não fosse o padrão, em servidores que eu uso muito eu mudo para a tecla "ESC".
johnnyB
1
Combine esta pequena besta desagradável com o terrível Ctrl + S do PuTTY, que envia um XOFF e realmente me faz temer o "s" no meu teclado. É mal. Estranhamente, o pressionamento de tecla PuTTY é Ctrl + Q para enviar um XON ... "q" é o salvador. Obrigado, resposta de 6 anos.
JNevill
67

Ao usar PuTTY , você pode obter uma tela aparentemente congelada se pressionar Ctrl+ s. Isso envia um Xoffsinal bloqueando a saída do terminal.

A solução é pressionar Ctrl + qpara enviar o Xonsinal.

Daniel Reis
fonte
Também funcionou para mim no ROXTerm no Linux - a tela foi bloqueada e me deu um prompt de login.
Bolsos e
Salvei meu dia (e noite).
sk
8

O procedimento acima funciona muito bem se esse for o seu problema.

Isso também pode acontecer se você entrar em outra máquina e não for à janela há algum tempo, então, quando você voltar, ela está congelada. Para corrigir isso, você pode tentar o seguinte:

1) Crie uma nova janela

Ctrl-a c

2) ssh na caixa onde você fez ssh na caixa na janela que está congelada.

3) Encontre o processo em que o ssh está sendo executado:

ps aux | grep <remote_box_on_frozen_screen>

ou

ps aux | grep <your_user_id>

4) Mate o processo

kill <process_id>
Hazok
fonte
Não sei como coloquei as coisas em um estado de falta de resposta, já que normalmente ctrl-q funciona para mim, mas eu tive que fazer isso e perder meu trabalho. +1 para o conselho de quebra-aqui-em-caso-de-emergência
taranaki
2
Na maioria das vezes, qualquer conexão SSH congelada pode ser fechada à força pressionando Enter, então ~e então .(veja também aqui ).
fotNelton
3

Quando você faz screen -lso primeiro número do nome da tela é o id do processo. Então, se a saída for

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.

Então isso vai matá-lo:

kill 21605

Observe que o número do comando kill é o mesmo da screen -lssaída.

Pylinux
fonte
2

Se você estiver usando comandos de crase na linha de status - isto é, se você .screenrctiver algo assim:

backtick 1 0 60 /some/script.sh

então você quer ter certeza de que o script é rápido: aparentemente a execução do backtick bloqueia todo o IO para a tela.

Se você fizer alterações na configuração, precisará reiniciar a sessão de tela (já que a configuração se aplica apenas a novas sessões).

Piskvor saiu do prédio
fonte