実行すると、ビューtop
に悪い行が表示されます。
2475 www-data 20 0 0 0 0 Z 1 0.0 0:00.19 apache2 <defunct>
なぜこのプロセスが進行<defunct>
し、どうすればよいですか?
答え1
無害です。無視しても構いません。これはゾンビプロセスです。マニュアルページps
に
Z Defunct ("zombie") process, terminated but not reaped by its parent.
Wikipediaページもご覧ください。ゾンビプロセス。
本当に削除したい場合は、apache2を再起動してください。マシンを再起動すると確かに問題は解決しますが、必ずしも必要ではありません。
この問題も同様です。 -親プロセスがinitの<defunct>プロセスを終了するには?
答え2
失敗したプロセスはゾンビプロセスです。 Kill コマンドはゾンビプロセスには影響しません。これは親プロセスを終了することで終了できます。 PPID値で親エントリを見つけることができます。 PPIDが1(init)の場合、つまりinit
親プロセスがもう存在しないため、プロセスが調整された場合に再起動することが唯一の回避策です。
答え3
SIGCHLD
親プロセスを終了するのではなく、親プロセスにシグナルを送信できます。親プロセスがこのシグナルに登録してwait
システムコールを呼び出すと、存在しないプロセスは削除されます。