Eu tinha um dispositivo executando o Ubuntu 12.04 LTS que tem o seu congelamento de tela. Geralmente, simplesmente pulei para um tty disponível, ou seja, Ctrl- Alt- F1e executei o comando /etc/init.d/lightdm restart
ou service lightdm restart
. No entanto, isso mata tudo o que tenho aberto. Como evito isso?
12
Respostas:
AVISO LEGAL: De acordo com o comentário de Brenden, isso pode estar desatualizado e não funcionar mais com as versões mais recentes do Ubuntu. Além disso, esteja preparado para perder as janelas abertas.
Agora eu o comprei para o Unity (apenas substituí meu shell do GNOME por unity sem sair ou fechar as janelas):
DISPLAY=:0
para que os programas saibam em qual porta encontrar o X-Serverexport DISPLAY
unity --replace
ougnome-shell --replace
(você também pode substituir o GNOME-Shell pela unidade ou Unity pelo GNOME-Shell)Isso funciona apenas se o X-Server ou o GNOME não estiver congelado, mas apenas o Unity ou o GNOME-Shell.
Como funciona: a comunicação entre os programas e o X-Server para exibir sua interface do usuário está funcionando em um soquete de rede. Isso normalmente está em "localhost: 0" short ": 0". Ao definir a variável DISPLAY, os programas sabem onde encontrar o X-Server para se comunicar com ela; portanto, os programas são exibidos no X-Server no tty7, mesmo que o programa esteja sendo executado no tty1.
O conteúdo das janelas é gerenciado pelo X-Server, enquanto a posição e as bordas das janelas são gerenciadas pelo gerenciador de janelas integrado na unidade ou pelo shell GNOM, para que haja uma maneira de substituí-los apenas sem reiniciar os aplicativos no X- Servidor.
PS: Estou apenas descrevendo o que entendo, por isso edite e corrija-me se estiver errado em alguns pontos.
EDIT: Para o GNOME-Shell, há outra maneira de reiniciá-lo. Depois de mudar para tty, basta digitar
pkill -HUP gnome-shell
, não sei se há algo semelhante para o Unity.fonte