J'avais un appareil exécutant Ubuntu 12.04 LTS qui avait son écran gelé. En général, j'ai simplement sauté sur un tty disponible, c'est Ctrl-à- dire - Alt- F1et exécuté la commande /etc/init.d/lightdm restart
ou service lightdm restart
. Cela tue cependant tout ce que j'ai ouvert. Comment éviter cela?
12
Réponses:
AVERTISSEMENT: Selon le commentaire de Brenden, cela pourrait être obsolète et ne plus fonctionner avec les nouvelles versions d'Ubuntu. Soyez également prêt à perdre vos fenêtres ouvertes.
Maintenant, je l'ai pour Unity (je viens de remplacer mon shell GNOME par Unity sans se déconnecter ni fermer les fenêtres):
DISPLAY=:0
pour que les programmes sachent sur quel port trouver le X-Serverexport DISPLAY
unity --replace
ougnome-shell --replace
(vous pouvez également remplacer GNOME-Shell par l'unité ou Unity par le GNOME-Shell)Cela ne fonctionne que si le X-Server ou GNOME n'est pas gelé mais uniquement Unity ou GNOME-Shell.
Comment cela fonctionne: La communication entre les programmes et le X-Server pour afficher leur interface utilisateur fonctionne via une prise réseau. Il s'agit normalement de "localhost: 0" short ": 0". En définissant la variable DISPLAY, les programmes savent où trouver le X-Server pour communiquer avec lui, donc les programmes sont affichés sur le X-Server sur tty7 même si le programme s'exécute sur tty1.
Le contenu des fenêtres est géré par le X-Server tandis que la position et les bordures des fenêtres sont gérées par le gestionnaire de fenêtres intégré dans l'unité ou le GNOM-shell donc il existe un moyen de les remplacer uniquement sans redémarrer les applications sur le X- Serveur.
PS: Je ne fais que décrire ce que je comprends, alors veuillez modifier et corriger si je me trompe sur certains points.
EDIT: Pour le GNOME-Shell, il existe une autre façon de le redémarrer. Après avoir changé en tty, tapez simplement
pkill -HUP gnome-shell
, je ne sais pas s'il y a quelque chose de similaire pour Unity.la source