Miałem urządzenie z systemem Ubuntu 12.04 LTS ma zawieszony ekran. Ogólnie po prostu wskoczyłem na dostępny tty, tj. Ctrl- Alt- F1i wykonałem polecenie /etc/init.d/lightdm restart
lub service lightdm restart
. To jednak zabija wszystko, co mam otwarte. Jak tego uniknąć?
12
Odpowiedzi:
ZASTRZEŻENIE: Zgodnie z komentarzem Brenden, może to być przestarzałe i nie działać już z nowszymi wersjami Ubuntu. Przygotuj się również na utratę otwartych okien.
Teraz mam go dla Unity (właśnie zastąpiłem moją powłokę GNOME jednością bez wylogowywania się i zamykania okien):
DISPLAY=:0
, aby programy wiedziały, na jakim porcie znaleźć X-Serverexport DISPLAY
unity --replace
lubgnome-shell --replace
(możesz także zastąpić GNOME-Shell jednością lub Unity przez GNOME-Shell)Działa to tylko wtedy, gdy X-Server lub GNOME nie jest zamrożony, ale tylko Unity lub GNOME-Shell.
Jak to działa: Komunikacja między programami a X-Server do wyświetlania ich interfejsu użytkownika działa przez gniazdo sieciowe. Zwykle jest to „localhost: 0” short ”: 0”. Ustawiając zmienną DISPLAY, programy wiedzą, gdzie znaleźć X-Server do komunikacji z nim, więc programy są wyświetlane na X-serwerze na tty7, nawet jeśli program działa na tty1.
Treścią okien zarządza X-Server, natomiast pozycją i granicami okien zarządza menedżer okien zintegrowany w jedności lub powłoce GNOM, więc istnieje sposób na zastąpienie tylko ich bez ponownego uruchamiania aplikacji na X- Serwer.
PS: Po prostu opisuję to, co rozumiem, więc popraw mnie i popraw, jeśli się mylę.
EDYCJA: W przypadku GNOME-Shell istnieje inny sposób na jego ponowne uruchomienie. Po zmianie na tty po prostu wpisz
pkill -HUP gnome-shell
, nie wiem, czy jest coś podobnego do Unity.źródło