Perl doesn't know that you intended to replace the running program with another process, thus the warning. The message says everything itself; you can try something like { exec($cmd) or die "exec: $!" } to supress the it properly.
<defunct> processes are zombies. Zombie is a kind of process which had finished running, but its parent has not handled SIGCHLD yet. This is strange; Parallel::ForkManager should handle these situations. To kill a zombie you simply need to kill its parent process (or wait for it to finish).
In reply to Re^3: Parallel::ForkManager Memory issue
by aitap
in thread Parallel::ForkManager Memory issue
by hotel
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |