in reply to forking through a subroutine
unlike when I use the standard child then parent in an if/else statement, when the parent in the code dies the kids do not go with it.Because the standard behavior does not require the kids to die if the parent dies. They are independent processes.
Perhaps you're confusing the results you get when you press ^C, because that signal is sent to all processes, resulting in all processes dying. But if the parent merely exits, the children continue.
To kill off the children when the parent exits, add a END{} block that signals the list of process ID's saved from each fork into a global array. So your fork routine would push @kids, $child and the end routine would kill 15, @kids.
-- Randal L. Schwartz, Perl hacker
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
(jptxs) Re: forking through a subroutine
by jptxs (Curate) on Apr 09, 2001 at 18:33 UTC |