Ubuntu 12.04 LTSを実行しているデバイスで画面がフリーズした。一般的に私は、単に利用可能TTY、すなわち上に跳ね上がっているCtrl- Alt- F1とコマンドを実行しました/etc/init.d/lightdm restart
かservice lightdm restart
。しかし、これは私が開いているすべてを殺します。これを回避するにはどうすればよいですか?
Ubuntu 12.04 LTSを実行しているデバイスで画面がフリーズした。一般的に私は、単に利用可能TTY、すなわち上に跳ね上がっているCtrl- Alt- F1とコマンドを実行しました/etc/init.d/lightdm restart
かservice lightdm restart
。しかし、これは私が開いているすべてを殺します。これを回避するにはどうすればよいですか?
回答:
免責事項: Brendenのコメントによると、これは時代遅れで、Ubuntuの新しいバージョンではもう機能しない可能性があります。また、開いているウィンドウが失われる可能性があることに注意してください。
今、Unity用に入手しました(ログアウトしたりウィンドウを閉じたりせずに、GNOMEシェルを単一に置き換えました)。
DISPLAY=:0
て、プログラムがどのポートでX-Serverを見つけるかを知るexport DISPLAY
unity --replace
またはgnome-shell --replace
(GNOME-Shellを単一に、UnityをGNOME-Shellに置き換えることもできます)これは、X-ServerまたはGNOMEが凍結されておらず、UnityまたはGNOME-Shellのみが凍結されている場合にのみ機能します。
仕組み:プログラムとUIを表示するX-Server間の通信は、ネットワークソケットを介して機能しています。これは通常、「localhost:0」の短い「:0」にあります。DISPLAY変数を設定することで、プログラムはX-Serverを見つけて通信する場所を知るため、プログラムがtty1で実行されている場合でも、プログラムはtty7のX-Serverに表示されます。
ウィンドウのコンテンツはX-Serverによって管理されますが、ウィンドウの位置と境界は単一またはGNOMシェルに統合されたウィンドウマネージャーによって管理されるため、X-上のアプリケーションを再起動せずにウィンドウのみを置き換える方法があります。サーバ。
PS:理解していることを説明しているだけなので、いくつかの点で間違っている場合は編集して修正してください。
編集:
GNOME-Shellの場合、再起動する別の方法があります。ttyに変更した後pkill -HUP gnome-shell
、単に入力するだけで、Unityに似たようなものがあるかどうかわかりません。