From the man page:
The command kill sends the
specified signal to the specified
process or process group. If no
signal is specified, the TERM signal
is sent. The TERM signal will
kill processes which do not catch this
signal. For other processes, it may
be necessary to use the KILL (9)
signal, since this signal cannot be
caught.
On Unix and Unix-like computer
operating systems, a zombie process or
defunct process is a process that has
completed execution but still has an
entry in the process table. This entry
is still needed to allow the process
that started the (now zombie) process
to read its exit status. The term
zombie process derives from the common
definition of zombie—an undead person.
In the term's metaphor, the child
process has "died" but has not yet
been "reaped". Also, unlike normal
processes, the kill command has no
effect on a zombie process.
Source : wiki
EDIT:
To remove zombies from a system, the
SIGCHLD signal can be sent to the
parent manually, using the kill
command. If the parent process still
refuses to reap the zombie, the next
step would be to remove the parent
process. When a process loses its
parent, init becomes its new parent.
Init periodically executes the wait
system call to reap any zombies with
init as parent.
Source : wiki