Odblokować zamrożony interfejs użytkownika osx za pomocą ssh bez zamykania wszystkich aplikacji?

19

Mój komputer Mac czasami się zawiesza i najczęściej po prostu uruchamiam go ponownie, przytrzymując przycisk zasilania przez ponad 5 sekund.

Jednak dzisiaj przeprowadzałem ogromny skan plików przez 14 godzin, kiedy interfejs użytkownika całkowicie zamarł i wolałbym nie czekać kolejnych 14 godzin!

Objawy zablokowanego interfejsu użytkownika: Podczas korzystania z klawiatury nic się nie dzieje (z wyjątkiem włączania / wyłączania lampki Caps Lock). Oczywiście wymuszone rzucenie się nie pojawia. Poruszanie myszką przesuwa kursor na ekranie, ale kliknięcie nic nie robi.

Używając innego komputera Mac w sieci, mogę uzyskać dostęp do komputera Mac przez SSH. Widziałem, że pamięć RAM jest prawie pełna, ale aktywność procesora była niewielka. Rzeczy, które próbowałem odblokować Mac:

  1. Zamknij / zabij Chrome, iMovie, Photoshop i inne aplikacje, których nie chciałem wyłączać. Pomógł w zmniejszeniu zużycia pamięci RAM, ale nie pomógł w odblokowaniu komputera Mac.

  2. Zamknij procesy Findera i Docka. Bez pomocy.

  3. Aktywowano udostępnianie ekranu z wiersza poleceń i próbowałem połączyć się zdalnie. Pojawi się okno dialogowe z hasłem (wskazujące, że udostępnianie ekranu rzeczywiście jest włączone), ale po podaniu hasła wskaźnik postępu obraca się na wieczność i nic się nie dzieje.

  4. Próbowałem zawiesić sesję użytkownika z wiersza poleceń:

/ System / Biblioteka / CoreServices / Menu \ Extras / User.menu / Contents / Resources / CGSession -suspend

To polecenie po prostu zawiesza się w sesji SSH i nic się nie dzieje. Należy przerwać za pomocą ctrl+ c. Użycie sudopowoduje natychmiastowe zwrócenie polecenia bez żadnego efektu.

Nawet zabicie WindowServer ( sudo killall -HUP WindowServer) nie pomogło, a uruchomienie wdzięcznego restartu ( sudo shutdown -r now) spowodowało tylko całkowite zawieszenie komputera (koniec ruchów kursora i dostępu ssh). Działało tylko wyłączanie wymuszone przyciskiem zasilania.

Musiałem czekać kolejne 14 godzin na ponowne uruchomienie skanowania plików. Czy istnieje inny sposób na odblokowanie komputera Mac w tym stanie? Dobrze byłoby wiedzieć w przyszłości…

Motin
źródło
1
Miałem teraz dokładnie ten sam problem, z dokładnie tym samym skutkiem dla wszystkich rzeczy, których próbowałeś. Dziękujemy za szczegółowe raportowanie. Chciałbym mieć sugestie, co robić w takich sytuacjach.
rahmu
Czy pojawiłoby się coś dziwnego sudo dmesg? Dla mnie było widzieć **** [IOBluetoothHCIController][SearchForTransportEventTimeOutHandler] -- Missing Bluetooth Controller Transport!, a potem pomieszane z kilku rzeczy, zaczął znów działać, a ja zob **** [IOBluetoothHCIController][protectedBluetoothHCIControllerTransportShowsUp] -- Connected to the transport successfully -- 0xe7c0 -- 0xd000 -- 0xc000 ****. Związek niepotwierdzony.
Joseph Lennox,
@JosephLennox To pytanie i powiązany wątek mają około 1 roku. Jeśli potrzebujesz pomocy, rozpocznij własne pytanie, podając szczegółowe informacje i być może link do tego pytania jako czegoś podobnego.
JakeGould
Miałem dokładne doświadczenie z Sierra 10.12. Jedyne, co dodam do twojej listy, aby sprawdzić, less /var/log/system.logczy możesz tam zauważyć problem. Widziałem com.apple.DumpGPURestart, ale nie mogłem nic na to poradzić poza przytrzymaniem przycisku zasilania przez ponad 5 sekund.
wisbucky 17.07.19

Odpowiedzi:

3

Od czasu do czasu radziłem sobie z tego typu sytuacjami, a kiedy jest to ogólne zawieszenie interfejsu użytkownika, nie ma żadnego konkretnego okna, które nie odpowiada, wtedy nie znalazłem nic (nie można zabić procesu), który mógłby poradzić sobie z problemem, oprócz zabijania WindowServer. To powinno spowodować wylogowanie sesji.

Jednak w tym konkretnym przypadku, ponieważ zabicie WindowServera nie przywróciło systemu do stanu użytecznego, podejrzewam, że i tak był skazany na zagładę.

Jeśli chodzi o najlepsze możliwe odzyskiwanie , należy zauważyć, że możliwe jest czyste zamknięcie poszczególnych aplikacji z SSH:

osascript -e 'tell application "TextEdit" to quit'

Normalne aplikacje GUI nie będą zapisywać swoich plików itp. Podczas killedycji, ale zrobią to po otrzymaniu tego zdarzenia zakończenia. Oczywiście, jeśli aplikacja wyświetli okno dialogowe, gdy każesz jej zamknąć, to nie pomaga. A jeśli osascriptsam się zawiesza, system wysyłania zdarzeń Apple zawiesza się ...

Kevin Reid
źródło
0

Mam ten problem regularnie. Wygląda na to, że ma związek z tym, że mój ATI Radeon 4850 nie działa. Wyłączyłem przyspieszenie grafiki, odsuwając sterowniki, ale nadal mam ten problem sporadycznie. Czasami zabicie Loginwindow przez ssh działa. Czasami zajmuje to kilka minut lub nawet więcej, a potem nagle działa. Miałem też czasy, gdy system reaguje normalnie po uruchomieniu wygaszacza ekranu. Poruszałem myszką, wygaszacz ekranu zatrzymuje się i system działa normalnie po tym. W tym celu skróciłem czas uruchamiania wygaszacza ekranu.

Bjinse
źródło
-1

Ok, miałem podobny problem z dźwiękiem (polecenia klawiatury działały, poruszałem myszą, nie mogłem kliknąć niczego w interfejsie użytkownika) i znalazłem rozwiązanie.

Mysz SmartMouse Bluetooth była w moim plecaku wciśnięta między innymi. Wyjąłem go z torby i wszystko już działa!

Najwyraźniej kliknięcie myszą zablokowało wszystkie inne kliknięcia myszą. Doh!

Mysz Click Guy 1432432
źródło