- ベストアンサー
割り込み不可能?なプロセスを強制終了する方法
Perlのスクリプトが、フリーズ(?)してしまいました。ps コマンドで状態をみると、D (割り込み不可能なスリープ状態 (通常 IO 中))になったままです。kill -KILL しても終了しません。 このような場合は、どうやって終了させればよいのでしょうか? また、何が原因で止まっているのかを調べる方法はありますでしょうか? 必要な情報があれば補足しますので、どなたか分かる方いましたら、お願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Dの状態ではmoneさん書かれたように割り込み不可ですので、KILLできません。そのスクリプトはディスクやテープバックアップなどをいじってませんか?こういう状態になってしまうのはカーネルモードで走るコードのバグのことが多いです。最近カーネルのアップデートなどされていませんか?またハードの故障に適切に対応できないドライバのケースもありますのでログやdmesgにへんなメッセージが出てないか確認してみましょう。
その他の回答 (2)
- uyo_uyo
- ベストアンサー率0% (0/2)
回答No.2
root権はあるのでしょうか?rootになっての kill -9 pid でも駄目な場合は、再起動しかないような…。 そのPerlのプログラムはどのようなもので、どうやって起動させたのですか?
質問者
補足
root権限でcronに登録しているバッチ処理用のスクリプトで、これまで1年近く稼動させていても問題なかったのですが、突然そのような状態に陥ってしまったのです。 もちろんroot権限でkillしていますが、駄目なようです。やはり再起動しかないでしょうか?
- uyo_uyo
- ベストアンサー率0% (0/2)
回答No.1
#kill -9 プロセス では駄目でしょうか?
質問者
補足
回答ありがとうございます。 kill -9 でも駄目でした・・・
お礼
回答ありがとうございます。 やっぱりKILLできないんですね。サーバ管理者などにも確認してみたところ、増設したHDが外されていて、それにアクセスしようとして止まっていたようでした。 OSには疎く、カーネルやドライバなどいじったことがないのですが、その辺も含めて管理者に今後の対応方法などについて相談してみたいと思います。 どうもありがとうございました。