場合によっては、特定のアプリケーションがクラッシュしてトップバーが消えるなど、Gnomeデスクトップを不安定にすることがあります。 X ctrl+shift+backspace を再起動するとリセットできます。しかし、BarやGnomeを完全に再度有効にする方法はありますか?
答え1
Gnomeを再起動できる必要があります。
gnome-shell --replace
マニュアルから:
DESCRIPTION
GNOME Shell provides core user interface functions for the GNOME 3 desktop,
like switching to windows and launching applications. GNOME Shell takes
advantage of the capabilities of modern graphics hardware and introduces
innovative user interface concepts to provide a visually attractive and
easy to use experience.
OPTIONS
--replace
Replace the running window manager
答え2
Alt-F2(IIRC)を押してコマンドを入力できるウィンドウを開くことができます。一般的なコマンドに加えて、GNOMEシェルはデスクトップ環境の動作を制御するいくつかのカスタムコマンドもサポートしています。この場合、restart
コンピュータではなくシェルを再起動する必要があります。
競合が多すぎて正常に動作しない場合は、次を使用してください。テドンの答え。
答え3
簡単に言えば、GUIでこれを実行できない場合は、同じユーザー(テキストコンソール、SSHなど)でログインし、次のように入力します。
eval "$(while read -d $'\0' line; do printf 'export %q\n' "$line"; done </proc/$(pgrep -fu$USER gnome-session-binary)/environ)"
gnome-shell --replace >.xsession-errors 2>&1 &
私はしばしばテキストコンソールを介してこれを行います。CTRL++を使用してALT他のコンソールに切り替えることができます。FnN通常はログイン画面から始まり、最初のセッションであるフリーコンソールF3番号ですF1。F2
明らかに適用されませんウェイランドgnome-shellは再起動をサポートしていないためです。
詳細な答え:
秘密は必要な環境を複製することです。GNOMEシェル- 正確に何が必要かは確認できませんでしたが、少なくとも待たなければなりませんDISPLAY
。XAUTHORITY
GNOMEシェル接続できますXサーバー、それからおそらく追加GNOMEシェルそしてその拡張。
プロセスツリーは次のようにする必要があります。
| |-gdm-session-wor(6444)-+-gdm-x-session(6464)-+-Xorg(6466)-+-{InputThread}(6472)
| | | | `-{radeon_cs:0}(6467)
| | | |-gnome-session-b(6475)-+-evolution-alarm(6712)-+-{dconf worker}(6789)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | | `-{gmain}(6465)
| | |-{gdbus}(6446)
| | `-{gmain}(6445)
この例ではGNOMEセッションバイナリ(pid 6475)はすべてのgnomeセッションプロセスの親プロセスなので、それを使用して環境を取得します。直接使用すると、gnome-shell
gnome-shell自体が子プロセスに対してより多くの変数を設定することがわかります。
私はpgrep
戻るために使用しますPIDこのプロセスは現在のユーザーに対してのみ機能します(複数のユーザーがログインしていても常に1つのPIDのみが必要です。2回正常にログインすると深刻な問題があります)。
次に(nullで区切られた環境変数のリスト)から作業ファイルを読み、environ
すべての行の前に。/proc/<PID>/
export
eval
これで、gnome-shell --replace
GUIセッションにあるかのように実行できます。このシェルを開いたままにするには、リダイレクトが必要な場合があります。標準出力そして標準エラーエラー率どこかに送信することができますが、私はそれを準備したいと/dev/null
思います(.xsession-errors
すべてのGUI出力を送信するために使用されるレガシーファイルXです。私は最新のシステムを信じています)。システムまたは丸太すべての出力をキャプチャして記録します。)
答え4
gnomeをrootとして再起動できます。
services gdm restart