GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで「中断できない」プロセスを停止するには?

簡単な答え:できません。

より長い答え:割り込み不可能なスリープは、プロセスがシグナルによって起動されないことを意味します。待っているものによってのみ目覚めることができます。そのような状況になったとき。 CD-ROM の場合、私は通常、ディスクへのサスペンドとレジュームを使用してコンピューターをリセットします。


中断できないプロセスの強制終了は成功しますが、すぐには実行されません。プロセスは、実際にシグナルを受信するまで消えません。そのため、シグナルを送信するだけではプロセスを取り除くのに十分ではなく、割り込み不可能なスリープからウェイクアップする必要もあります。

Tanel Poder は、D 状態プロセスを分析するための優れたガイドを作成しました。この状態が不完全な I/O によって引き起こされることは非常に一般的です。ネットワーク障害。 slm は、ネットワーク I/O の詰まりを解消する方法と、問題自体について、スーパーユーザー向けに非常に役立つヒントを投稿しています。

個人的には、VirtualBox で Windows を扱っているときや、wine を扱っているときでも、cdrom I/O が完了しないために、この問題に遭遇することがよくあります (ある種のディスク存在チェックだと思います)。 ATA デバイスはリセットできます。これにより、プロセスのジャムが解消される可能性があります。たとえば、次の小さなスクリプトを使用して両方の光学ドライブをリセットし、ブロックしているプロセスの妨害を解除しています:

echo 1 > /sys/block/sr0/delete
echo 1 > /sys/block/sr1/delete
echo "- - -" > /sys/class/scsi_host/host7/scan

D 状態は基本的に、プロセスがディスク I/O、または中断できないその他のブロック I/O を待機していることを意味します。これは、カーネルまたはデバイスが熱狂的に不良ブロック (特に光ディスクから) を読み取ろうとしていることを意味する場合があります。他の何かがあることを意味する場合もあります。

プロセスは、D 状態から出るまで強制終了できません。それが何を待っているのかを調べて、それを修正してください。簡単な方法は、再起動することです。問題のディスクを取り外すと役立つ場合もありますが、それはかなり危険な場合があります。何をしているのかわからない場合、修復不可能な壊滅的なハードウェア障害が発生します (読み取り:煙が出ます)。


Linux
  1. コマンドを使用してLinuxでプロセスを強制終了する方法は?

  2. C の Linux でノンブロッキング コンソール I/O を行うにはどうすればよいですか?

  3. Linuxでスクリーンプロセスを停止するには?

  1. Linux でディスク I/O キャッシュをパージする方法は?

  2. Linux でプロセスごとのネットワーク I/O 使用率を監視するにはどうすればよいですか?

  3. Linux でメモリ使用量はどのように報告されますか?

  1. MySQL内でプロセスを停止する方法

  2. プロセスごとのディスク I/O 使用率を確認する方法は?

  3. プロセスの合計 I/O コスト