免責事項: ブレンデンのコメントによると、これは時代遅れであり、新しいバージョンの Ubuntu では機能しなくなっている可能性があります。また、開いているウィンドウが失われる可能性があることに注意してください。
Unity用に入手しました(ログアウトしたりウィンドウを閉じたりせずに、GNOMEシェルをunityに置き換えただけです):
<オール>DISPLAY=:0
と入力します X-Server を検索するポートをプログラムが認識できるようにするexport DISPLAY
unity --replace
または gnome-shell --replace
(GNOME-Shell を Unity に、Unity を GNOME-Shell に置き換えることもできます)これは、X サーバーまたは GNOME がフリーズしておらず、Unity または GNOME シェルのみがフリーズしている場合にのみ機能します。
仕組み:UI を表示するためのプログラムと X サーバー間の通信は、ネットワーク ソケットを介して行われます。これは通常、"localhost:0" 短い ":0" にあります。 DISPLAY 変数を設定することにより、プログラムは通信する X サーバーの場所を認識できるため、プログラムが tty1 で実行されている場合でも、プログラムは tty7 の X サーバーに表示されます。
ウィンドウの内容は X サーバーによって管理されますが、ウィンドウの位置と境界線は unity または GNOM シェルに統合されたウィンドウ マネージャーによって管理されるため、X サーバー上のアプリケーションを再起動せずにそれらだけを置き換える方法があります。サーバー。
PS:私が理解していることを説明しているだけなので、いくつかの点で間違っている場合は編集して修正してください。
編集: GNOME-Shell の場合、再起動する別の方法があります。 tty に変更したら、単に pkill -HUP gnome-shell
と入力します。 、Unity に似たようなものがあるかどうかはわかりません。