How to kill a defunct process (most of the time)
Defunct processes are processes that have become corrupted in
such a way the no long can communicate (not really the right word, more like signal each other)
with their parent or child process.
So kill the parent or child
and 99% of the time (around here at least) the defunct process will
go away!
No parent or child, you're out of luck, or look for a stuck automount.
#
# list detached non root processes on Solaris
#
clarion:/# ps -ef | grep -v \ \ root | grep -v pts/ | less
UID PID PPID C STIME TTY TIME CMD
xxxxxx 168 1 0 Jan 13 ? 0:00 /usr/lib/nfs/statd
yyyy 28835 28789 0 Apr 07 ? 2:05 xbiff++
zzz 13868 1 0 0:00 <defunct>
aaaa 24724 24721 0 Apr 02 ? 0:02 /usr/openwin/bin/xload -hl red -g
eom +396+26
nnnn 28789 28786 0 Apr 07 ? 0:00 /pkg/local/bin/tcsh -c xbiff++
# now use /usr/proc/bin/ptree to find parent or child
## Linux users might try ps -ef --forest | less
clarion:/# /usr/proc/bin/ptree 13868
13868 <defunct>
16596 a.out
clarion:/# kill -9 16596
# ta daa !
#
# or
#
bash# /usr/proc/bin/ptree `ps -ef | grep -v ^\ \ \ \ root | awk '/<defunct>/ {print $2}'` | less
Written with vi, and should be viewable by any browser!