端末がフリーズするのはなぜですか?


11

端末がフリーズして、入力できない場合があります。原因も診断方法も特定できません。助言がありますか?

ありがとう!

Ubuntu 10.04上のGNOMEターミナル2.30.2


2
通常、端末がフリーズするのは、バックグラウンドで別のアプリケーションがCPUやディスクI / Oなどのリソースを使いすぎているためです。topターミナルで実行する場合、問題を簡単に見つけることができるはずです。
RolandiXor

@roland-catch-22のように聞こえますが、時々、ある端末がフリーズしたときに別の端末を開くことができ、それが機能するため、良いアドバイスです。
デビッドルバウアー

私は当然知っている?:)これはちょっとしたキャッチ22ですが、私にとってはよく機能します。
RolandiXor

回答:


14

神秘的なハングを診断する一般的な方法:

  1. (nother)ターミナルを開きps axo pid,wchan:32,cmd、他のプロセスIDを見つけるために使用します
  2. wchanカーネルにスタックしているかどうかを示す列に注意してください
  3. sudo strace -p PIDそのプロセスのpidの挿入を実行します。それをバグレポートまたは質問に貼り付けてください

wchanカラムにダッシュ以外の何かがある場合、プロセスはカーネルが何かをしていることになります。いくつかの典型的な値:

  • futex_wait_queue_me -同じプロセス内の別のスレッドのfutexで待機
  • poll_schedule_timeout -ネットワークまたはプロセス間通信を待っている、またはしばらくスリープ状態になっている
  • pipe_wait -パイプの読み取り/書き込み

数千の可能性があるので、それらすべてをリストすることはできません。プロセスの「待機チャネル」とはを参照してください多くのための。


汎用のバグ追跡に非常に役立ちます。詳細な説明で回答を更新してください。wchan列のどのメッセージが、カーネルにスタックしているプログラムを示していますか?
サリーエミン

ありがとう、サリー。ハングを診断する一般的な方法について別の質問が必要でしょうか?
プーリー

他のwchan値に興味がある場合は、コメントを追加してください。
プーリー

any wchanは、プロセスがカーネルで待機していることを意味します。長時間そこにとどまり、ネットワークioをリッスンするような正当な理由がない場合、スタックしています。;)
poolie

25

万が一Ctrl + Sを押しましたか?Ctrl-Qを押して再開するまで、すべての出力を停止するのはターミナルの一時停止キーです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.