Ekran GNU nie odpowiada, wygląda na zablokowany


88

Wygląda na to, że ekran GNU zawiesza się. Nie można wprowadzić danych wejściowych użytkownika.

Używałem ekranu GNU i kiedy go nacisnąłem, przestał odpowiadać. Mogę wykonywać wszystkie polecenia ekranowe GNU, ale nie mogę wprowadzać danych wejściowych użytkownika. Nie chcę zabijać tego ekranu, ponieważ mam ważną pracę i nie chcę jej stracić.


Odpowiedzi:


132

W poniższych poleceniach zastąp Ctrldowolnym klawiszem Escape dla poleceń ekranowych.

Spróbuj Ctrl+ a q, czyli sekwencja odblokowania przewijania.

Ctrl+ a sto sekwencja blokująca przewijanie, przez co ekran wygląda tak, jakby się zawieszał.


Cóż, zadziałało, ale tylko na jednym ekranie, na drugim zakończyło się :(
sirus

7
Ci Panie, po prostu się mój dzień :) dokumentacji GNU Screen nie wymyślić podczas googlowania „GNU Screen zamrożenie”: /
david_p

1
Miałem ten sam problem. Tylko jeden ekran został zamrożony, co dało mi do zrozumienia, że ​​problem był „związany z ekranem”. Rzeczywiście, przypadkowo nacisnąłem Ctrl-A s.
smithfarm

Jestem tak przyzwyczajony do używania CTRL + A, aby przejść na sudopoczątek wiersza poleceń, aby dodać (ponieważ zapomniałem zacząć od niego), że kiedy używam ekranu, blokuję go cały czas! Jak mówi poprzedni komentarz, CTRL+A qgłównie działa, czasami istnieje ekran. Życzenie CTRL + A nie było domyślne, na serwerach używam dużo zmieniam go na klawisz "ESC".
johnnyB

1
Połącz tę paskudną małą bestię z okropnym Ctrl + S PuTTY, który wysyła XOFF i naprawdę sprawia, że ​​boję się „s” na mojej klawiaturze. To jest złe. Co dziwne, naciśnięcie klawisza PuTTY to Ctrl + Q, aby wysłać XON ... „q” jest wybawcą. Dziękuję, odpowiedź od 6 lat.
JNevill

67

Podczas korzystania z PuTTY możesz uzyskać pozornie zatrzymany ekran, naciskając Ctrl+ s. To wysyła Xoffsygnał blokujący wyjście terminala.

Rozwiązaniem jest naciśnięcie Ctrl +, qaby wysłać Xonsygnał.


Pracowałem również dla mnie na ROXTerm w systemie Linux - ekran został zablokowany i dał mi monit o zalogowanie.
Kieszenie i

Uratowałem mój dzień (i noc).
sk

8

Powyższe działa świetnie, jeśli to jest twój problem.

Może się to również zdarzyć, jeśli jesteś ssh na innej maszynie i nie byłeś przez jakiś czas w oknie, a kiedy wrócisz, jest zamrożony. Aby to naprawić, możesz spróbować wykonać następujące czynności:

1) Utwórz nowe okno

Ctrl-a c

2) ssh do pudełka, w którym ssh byłeś do pudełka w oknie, które jest zamrożone.

3) Znajdź proces, w którym działa ssh:

ps aux | grep <remote_box_on_frozen_screen>

lub

ps aux | grep <your_user_id>

4) Zabij proces

kill <process_id>

Nie wiem, jak wpadłem w taki stan braku odpowiedzi, ponieważ zwykle ctrl-q działa dla mnie, ale musiałem to zrobić i straciłem pracę. +1 za porady dotyczące
przerw w

2
Najczęściej zamrożone połączenie SSH można zamknąć na siłę, naciskając Enter, ~a następnie .(patrz również tutaj ).
fotNelton

3

Kiedy to zrobisz, screen -lspierwsza cyfra pseudonimu to identyfikator procesu. Więc jeśli wyjście to

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.

Wtedy to go zabije:

kill 21605

Zwróć uwagę, że numer polecenia kill jest taki sam, jak w danych screen -lswyjściowych.


2

Jeśli używasz poleceń backtick w linii statusu - to znaczy, jeśli masz .screenrccoś takiego:

backtick 1 0 60 /some/script.sh

wtedy chcesz mieć pewność, że skrypt jest szybki: najwyraźniej wykonanie backticka blokuje wszystkie operacje wejścia / wyjścia na ekran.

Jeśli wprowadzisz zmiany w konfiguracji, musisz ponownie uruchomić sesję screen (ponieważ konfiguracja dotyczy tylko nowych sesji).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.