web-dev-qa-db-ja.com

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

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

ありがとう!

Ubuntu 10.04上のGNOMEターミナル2.30.2

10
David LeBauer

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

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

Wchan列にダッシュが1つしかない場合は、カーネルで何かが行われます。いくつかの典型的な値:

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

数千の可能性があるので、すべてをリストすることはできません。詳細については、 プロセスの「待機チャネル」とは何ですか? を参照してください。

14
poolie

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

21
Marius Gedminas