「kill -9」を使用してwgetプロセスを終了することはできません。

「kill -9」を使用してwgetプロセスを終了することはできません。

wget終了できないプロセスがあります。この質問は次のようになります。私は以前何か尋ねました。しかし、ここの列のD項目STATuninterruptible sleep (usually IO)、他の質問では、プロセスは状態にありますR

$ ps -axuf | grep `id -un`
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
[...]
biogeek   2833351  0.0  0.0      0     0 ?        D    Apr12   0:03 [wget]
[...]

殺そうとすると、出力は生成されません。

$ kill -9 2833351

ps -axuf再実行しても wgetプロセスはそのまま残ります。

この問題を引き起こすソフトウェア/ハードウェア障害をどのように識別できますか?

ベストアンサー1

プロセスが SIGKILL を受け取ったので、現在のシステムコールから返されると終了します。また、カーネルは、プロセスがシステムコールを中断しても安全な状態に入るとすぐにプロセスが復帰できるようにします。カーネル内で異常が発生した場合、プロセスはD長時間中断することなくスリープ状態になります。終了できないプロセスの詳細については、次を参照してください。「kill -9」が動作しない場合はどうなりますか?

プロセスが実行しているタスクを調査する1つの方法は、次の診断ツールを実行することです。ストレスまたはまたは他の同様のツール(Unixの好みに応じて)。これにより、プロセスがどのシステムコールを実行しており、どのパラメータを使用しているかがわかります。たとえば、次の内容が表示されることがあります。

strace -p2833351
strace: Process 2833351 attached
read(3, 

これは、プロセスが現在のファイル記述子3から読み取られていることを知らせる。次のステップは、withlsof -p2833351やwithなどのファイル記述子に何があるかを調べることですls -l /proc/2833351/fd/3。これは、応答しないNFSサーバーや障害のあるディスクコントローラがファイルシステムドライバが予期しない状態になるなど、問題の原因を示している可能性があります。

システムログでも手がかりを見つけることができます。手がかりは、非常に異なる原因によって引き起こされる可能性があり、非常に異なる兆候を持つ可能性がある異常な行動であるため、見つけるのは難しいかもしれません。プロセスが実行する操作に直接関連するカーネルのバグ、一部のメモリを破損する関連のないカーネルのバグ、一部のメモリを破損するRAMの不具合、応答があってはいけませんが応答しないディスクドライブなどの障害のある周辺機器です。など。

おすすめ記事