例えば以下のようなプロセスツリーを考える。
$ ps --forest 5862 5882 14109 20195 PID TTY STAT TIME COMMAND 14109 pts/1 Ss 0:01 /bin/bash 5862 pts/1 Sl+ 1:47 \_ emacs -nw 20195 ? Ss 0:00 \_ gnutls-cli --x509cafile /etc/ssl/certs/ca-certificates.crt -p ****** ****************************
ここで子プロセスの応答がなくなり、kill すると、defunct プロセスが残ってしまった。
$ kill 20195 $ ps --forest 5862 5882 14109 20195 PID TTY STAT TIME COMMAND 14109 pts/1 Ss+ 0:01 /bin/bash 5862 pts/1 Tl 1:59 \_ emacs -nw 20195 ? Zs 0:00 \_ [gnutls-cli] <defunct>
そんなときは defunct プロセスとその親プロセスを kill するときれいに消える。
$ kill -9 20195 5862 $ ps --forest 5862 5882 14109 20195 PID TTY STAT TIME COMMAND 14109 pts/1 Ss+ 0:01 /bin/bash