Generally, you catch signals by defining a handler. See
perlipc (maybe lookat at
$SIG{CHLD}). This at least will provide you a place to start. I've never attempted to do what you are with a child process. This has surely been solved somewhere in CPAN.