I understand that a zombie is created when a process doesn't clean-up well (its resources aren't reclaimed/reaped). After calling fork() to create a new process, the parent should always call waitpid on that process to clean it up.
I also have learned that a daemon is created by forking a child that was itself created by fork, and then letting the child die. Apparently the init process (pid #1) in UNIX would take custody of the process once you do this.
What I want to know is - as far as I know, when a parent dies it cleans up the child automatically - so how does a zombie get created in the first place?
Secondly, the parent of a daemonized process dies off, so why isn't the daemonized process considered a zombie?