Linux デスクトップがフリーズしているように見えても、ほとんどの場合、オペレーティング システムは正常に動作しています。グラフィカル インターフェイスは、Linux システム上で実行される単なる別のプログラムであるため、クラッシュした場合でもデスクトップ セッションを復元できます。こうすることで、保存していない作業内容をバックアップし、再起動せずにデスクトップに戻ることができます。その方法を説明しましょう。
TTY セッションとは何ですか、いつ使用するか
このテキストベースのコンソールは、Linux マシンと対話するもう 1 つの方法です
Linux システムには、TTY またはテレタイプライターと呼ばれる特別なテキストベースのコンソール インターフェイスがあります。このコンソールを使用すると、ターミナル アプリと同じようにシステムを操作できます。グラフィカル ユーザー インターフェイスとは別に実行されるため、GUI がクラッシュした場合でも、未保存の作業を保存したり、問題のあるプロセスを強制終了したりできます。
最も一般的な回復不可能なシナリオはカーネル パニックです。これは、グラフィカル インターフェイスの下で実行されているシステムもクラッシュしたことを意味します。そうなると、TTY コンソールにアクセスすることさえできなくなります。
デスクトップ全体が応答しない場合にのみ、TTY コンソールにジャンプする必要があります。フリーズしているプログラム ウィンドウが 1 つだけの場合は、次のコマンドを使用してそれを強制終了できます。 xkill 指示。ターミナル アプリを開き、次のコマンドを入力します。
xkillカーソルが十字に変わり、クリックしたウィンドウは即座に終了します。
いずれの場合も、ターミナルを起動することが最初のステップである必要があります。ターミナルにアクセスできる場合は、ターミナルを使用して、次のようなツールでアクティブなプロセスを検索できます。 htop または btop。と htop または btop、問題のあるプロセスを直接強制終了できます。
TTY セッションにジャンプする
キーボード ショートカット Ctrl+Alt+F2 を使用し、通常の認証情報でログインします。
コンピューターが完全にフリーズし、ターミナル ウィンドウを開くことさえできないとします。最初のステップは、Ctrl+Alt+F2 を押すことです。このショートカットにより、新しい TTY セッションが開始されます。ユーザー名とパスワードを使用して Linux システムにログインする必要があります (現在のデスクトップ セッションにログインするときに使用したユーザー名とパスワードと同じです)。
最初にユーザー名を入力し、次にパスワードを入力します。パスワード入力は非表示になります。入力が終わったら Enter キーを押してください。
TTY セッションにドロップされたら、次を実行します。 htop または btop RAM と CPU を最も多く消費するプロセスを表示します。リソースを過剰に消費しているアプリを探します。
保存する重要な作業がない場合は、問題のあるプロセスをすべて強制終了するだけで済みます。の上 htop、矢印キーを使用して問題のあるプロセスを選択し、F9 キーを押すことができます。リストから SIGKILL を選択すると、プロセスが即座に終了します。
を使用することもできます。 killall ターゲットプロセスがすでにわかっている場合は、コマンドを実行します。
killall firefox
安全のため作業内容を保存してください
自動保存ファイルをバックアップし、アクティブなジョブを監視できます。
未保存の作業内容が失われるのが心配でアクティブなプロセスを強制終了する準備ができていない場合でも、シェルを使用して作業内容を保存してから作業を再開できます。一部のアプリでは作業内容が自動保存されますが、念のため、その自動保存データを安全な場所に保存しておくこともできます。たとえば、LibreOffice は自動保存ファイルをこのディレクトリに保存します。 ~/.config/libreoffice/4/user/backup/。 VS Code の自動保存データはこの場所にあります ~/.config/Code/User/workspaceStorage/ ターミナルでコマンドを実行している場合は、このコマンドでそれがまだ生きているかどうかを確認できます。 name をターゲット プロセスの名前に置き換えます。
ps aux | grep name
実行中の場合は、出力に少なくとも 2 行が表示されます。
たとえば、Kden Live または DaVinci Resolve でビデオをレンダリングしようとしている場合は、次のように使用できます。 ps aux | grep kdenlive まだ実行中かどうかを確認します。 KdenLive がまだアクティブな場合は、出力を監視できます (出力は段階的にレンダリングされるため、ファイル サイズは増加し続けます)。このコマンドを使用すると、ファイルの変更を監視できます。サイズが大きくなり続ける場合は、レンダリングが引き続き正常に実行されていることを意味します。
watch -n 2 ls -lh /path/to/output.mp4
デスクトップセッションに戻る
グラフィカルデスクトップセッションが復元されたかどうかを確認します
不正なプロセスを特定して強制終了すると、デスクトップ セッションが復元されるはずです。現在のデスクトップ セッションに戻ると、現在のステータスを確認できます。
ほとんどの Ubuntu および Fedora ベースのシステムでは、Ctrl+Alt+F2 を再度押すと、グラフィカル デスクトップ セッションに戻ります。一部のシステム (私が使用している MX Linux など) では、Ctrl+Alt+F7 を使用して現在のデスクトップ セッションに戻ります。
これらのショートカットのどちらもアクティブなデスクトップ セッションに戻れない場合は、F1 から F9 までの関数行全体を循環することを検討してください。
ほとんどの場合、フリーズしたデスクトップ セッションを回復することが可能です
すべてがうまくいけば、手動で終了したアプリを除き、実行中のアプリがすべて揃った、正常に動作するデスクトップが再び表示されます。特に古いハードウェアでは、切り替えが完了するまでに 1 秒かかる場合があるため、グラフィカル インターフェイスがまだフリーズしているように見えても、数秒待ちます。