プログラムがフリーズして Ubuntu が応答しなくなったときに、ターミナルから何かできることはありますか?

プログラムがフリーズして Ubuntu が応答しなくなったときに、ターミナルから何かできることはありますか?

通常通り作業していたのですが、突然、あるプログラムがクラッシュしてしまいました。プログラムが応答しなくなり、ウィンドウが灰色になりました。その後、プログラムを閉じるか、応答するまで待つかというメッセージが表示されました。

プログラムを閉じることを選択しましたが、意図したとおりには動作しませんでした。Ubuntu 全体がフリーズしてしまい、何もできませんでした。

そこで、入力するとターミナルが開くことに気付きましたCtrl + Alt + t。そして、実際にターミナルが開きました。しかし、次に何をすればいいのかわからなかった

私の質問は次のとおりです。プログラムがフリーズした場合、ターミナルから何をすればよいですか?私の場合は nautilus でした (FTP プログラムとして使用してリモート サーバーに接続していました)。結局、 でマシンを再起動しましたsudo reboot

最悪だ。もっと良かったのに応答しないプログラムを閉じるにはどうすればいいでしょうか? また、応答しないプログラムの名前がわからない場合はどうすればいいでしょうか?

ご参考までに、私はこのトピックを読みました "UI要素が完全に応答しなくなる「そして、私はこれが同じケースではないと思います。なぜなら、私は通常この問題を抱えておらず、あまり一般的ではないし、メモリは正常に動作しており、マシンはかなり新しいものだからです(Intel Core i7、8 GB RAM)。

答え1

できますxkill。この気の利いた小さなユーティリティは、次にクリックしたウィンドウを自動的に破壊します。

使用できる別のオプションは、topまたは と呼ばれるものですhtop。奇妙なプロセス、特に「ゾンビ」としてマークされているプロセスや、大量のシステム リソースを消費しているプロセスを探します。その後、Kキーを使用してそれを強制終了できます。強制終了コード 9 を使用すると、プロセスが即座に強制終了されます。

問題のあるプログラムが であるとしますnautilus。次のいずれかの方法を使用します。

  1. xkillターミナルで を使用し、Nautilus ウィンドウをクリックします。X はセッションを終了し、Nautilus がクラッシュします。ESCキーを数秒間連続して入力し、Xkill がまだ実行されていないことを確認します。
  2. killall -9 nautilus
  3. 実行してtop、 を探しnautilus、上から殺します。

一部のプロセスを強制終了するには権限を使用する必要があることに注意してくださいsudo

答え2

私たちが採用している端末ベースのシステムの大きな利点の 1 つは、その答えが明確に「YES」であることです。

control私が通常行うことは、 - alt-を使用してターミナル 1 (デスクトップは常にターミナル 7 にあります) に切り替えることですf1

プログラムが何であるかがわかっている場合は、これは非常に簡単です。そのタスクのプロセス ID を見つけて、それを強制終了します。タスクはターミナル 7 で消え、これでクラッシュが修正されれば、システムは再び応答するようになります。

firefox を使用する例: firefox を起動するとプロセス ID が取得され、 でこれを表示できますps -ef | grep firefox。firefox を検索したいものに置き換えます。

ps -ef |grep firefox
rinzwind  5046  1484 48 19:52 ?        00:00:01 /usr/lib/firefox/firefox
rinzwind  5113  4992  0 19:52 pts/4    00:00:00 grep --color=auto firefox

(grepを参照するプロセスは私のコマンドです)

ログイン名の後ろの最初の数字はプロセス ID です。Firefoxkill -9 5046を終了します:

~$ kill -9 5046
~$ ps -ef |grep firefox
rinzwind  5148  4992  0 19:54 pts/4    00:00:00 grep --color=auto firefox

そしてデスクトップからFirefoxが消えてしまいました。

通常、問題は正しいプロセス ID を識別することです。Firefox セッションが 5 つ開いている場合、正しいセッションを取得するのは少し問題になります。その場合は、絞り込むためにさらにロジックを追加する必要があるかもしれません。


警告: 常識に従ってください。低いプロセス ID (500 未満) を強制終了することは避けてください。

関連情報