I was intrigued so I looked up deamon and fork to see if I could find an issue.
in reply to Re: Daemon causing zombies under 5.8
in thread Daemon causing zombies under 5.8
On the fork page I answered one of my questions, what does the code:
do. Looking at this page there is this code as well, which is probably what you want to add, and is probably your source of zombies:
# child code goes here.
my $child_pid = shift;
# parent code goes here.
waitpid $child, 0;
# Error-handling code goes here (if fork() fails).
# Note the semicolon at the end. Necessary if other statements follow
So as I suspected it looks like you need the waitpid() call.
One question I still have, is it normal for your loop to be recursive? If this code is supposed to run indefinitly are you not going to run into stack issues? Or is there something else that prevents this?