in reply to "No child processes" problem with fork() call

The script doesn't check that the fork() was successful. Add something like
if (!defined $child) { $self->log("Error when running [$external_command]: fork failed: $ +!"); } else if ($child) { # parent; return data ....
That might at least narrow down the problem.

Dave.