if you die, they die alsoWhen the parent process ends it sends a SIGHUP to child processes. That will not kill child processes if they ignore or handle the signal. That can be done in a number of ways, but from perl:
$SIG{'HUP'}='IGNORE';. If you do this in the parent then child processes inherit DEFAULT or IGNORE signals in the signal mask (not handlers).
There are several reason why the pid might be required,
waitpid or
kill spring to mind. See the modules mentioned above, or write your own based on
fork.