Zdarzyło mi się to, gdy korzystałem z vi, gdy sesja zamarła, a ja się rozłączyłem. Podczas próby ponownego podłączenia do ekranu za pomocą screen -Arx proces po prostu się zawiesił.
Może być uruchomiony podobny proces potomny powodujący zawieszenie się ekranu. Jeśli przypomnisz sobie jedno, na którym się szczególnie skupiasz, w przeciwnym razie, aby uzyskać listę procesów potomnych uruchomionych pod twoim ekranem, wykonaj:
ps ux -H
Które pokażą zagnieżdżone procesy potomne:
zwood 28481 0.0 0.0 101148 8844 ? Ss Oct07 1:36 SCREEN -S mysession
zwood 28482 0.0 0.0 67436 1744 pts/2 Ss+ Oct07 0:00 /bin/bash
zwood 28515 0.0 0.0 67556 1876 pts/4 Ss+ Oct07 0:00 /bin/bash
zwood 4498 0.0 0.0 67436 1772 pts/5 Ss Oct07 0:00 /bin/bash
zwood 2007 0.0 0.0 73604 1324 pts/5 S+ 15:47 0:00 vi /home/zwood/.bashrc.custom
zwood 14670 0.0 0.0 67436 1768 pts/13 Ss+ Oct14 0:00 /bin/bash
zwood 27002 0.0 0.0 67436 1720 pts/11 Ss+ Oct20 0:00 /bin/bash
zwood 24748 0.0 0.0 67432 1712 pts/14 Ss+ Oct21 0:00 /bin/bash
Po zabiciu procesu vi, który spowodował problem, mogłem ponownie podłączyć ekran bez żadnych problemów. Dobrym pomysłem jest również zabicie wszystkich wcześniejszych procesów, które zostały ponownie podłączone do ekranu. Po prostu użyj:
kill -9 <pid>
Nie wiem, co robi ekran wewnętrznie, dlaczego vi spowodowało zawieszenie się ekranu, ani dlaczego zabicie procesu vi przywróciło mój ekran. W przeszłości miałem ten problem z ekranem i próbowałem bez powodzenia tego, co większość ludzi polecała w tym wątku. Znalezienie tego problemu proces potomny jest jedyną rzeczą, która działała dla mnie i działała konsekwentnie.