リソース(RAMおよびCPU)を使用してはならないゾンビプロセスは、コア全体を占有しています8コア64ビットUbuntu11.10デスクトップインストール。
これはps -el|grep Z
の出力です。
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 Z 1000 10317 1 99 80 0 - 0 exit ? 19:27:15 Java <defunct>
...そして、ここにtop
からの抜粋があります:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10317 deltik 20 0 0 0 0 Z 100 0.0 1170:17 Java <defunct>
1424 root 20 0 612m 193m 158m S 14 2.4 287:17.11 Xorg
12580 deltik 20 0 710m 135m 46m S 5 1.7 27:31.07 compiz
これが、ゾンビプロセスが実現した方法です。
xscreensaver
でロックしたときに、そのJARが実行されていました。gnome-system-monitor
を使用して強制終了しようとしました(PID 10317)。ゾンビになりました。kill -9 10317
は効果がありませんでした。xkill
は「Minecraft」というタイトルのウィンドウのみを閉じました。基になるJava
プロセスを閉じませんでした。関連情報:
Xorg
およびcompiz
のCPU使用率が高い場合があります。私は知りたいです:
Java
のこのプロセスを再起動せずに破棄するには、どのような方法がありますか?プロセスはすでにinit
に親が変更されているため、刈り取る必要があります(そうでない場合、解決策は親を強制終了することです)。 exit
フィールドに基づいて、WCHAN
でスタックしているようです。
実際には、コアダンプの作成などの処理を行って終了し、自然に消えてしまう可能性があります。残念ながら、ドライバが壊れているためにカーネルで回転している可能性があり、最終的には再起動するしかありません。
やってみました Sudo kill -SIGCHLD 1
?これが機能しない場合は、システムを再起動する必要があります。
詳細: https://stackoverflow.com/questions/6335730/zombie-process-cant-be-killed および https://serverfault.com/questions/89759/init -never-reaping-zombie-defunct-processes
ゾンビプロセスは終了しましたが、まだクリーンアップされていません(刈り取られたのが正しい用語です)。したがって、kill
は通常のプロセスのように機能しません。プロセスはまだプロセステーブルにありますが、ゾンビの場合、リソースは割り当て解除されています。
SIGCHLD
シグナルをプロセスの親に送信してみることができます。そうしないと、initがそれを取得して、最終的にそれを取得するはずです。プロセスをスピードアップしたい場合は、単に再起動するだけです。
これはカーネルのバグです。 ecryptfsを使用してホームディレクトリを暗号化していますか? launchpad.netにバグの報告があります。