but that dosn't watch for zombies, or limit the number of forks at any one time.if(fork() == 0){exec("command")}
Usually, you do something like:
There are a bunch of recipes around for limiting the number of forks running at any one time, but you are best off using Parallel::ForkManager See: controlling child processes#!/usr/bin/perl # There is a limit to the number of child processes you can # have, or should want, so big jobs may require the kind of # throttling Parallel::ForkManager gives you. #The receipe for 100 processes: #avoid zombies $SIG{CHLD} = 'IGNORE'; # check if it works on your system for (1..100) { my $pid = fork; next if $pid; # in parent, go on warn($!), next if not defined $pid; # parent, fork errored out exec @cmd; # in child, # go do @cmd and don't come back }
In reply to Re^5: Segmentation fault: problem with perl threads
by zentara
in thread Segmentation fault: problem with perl threads
by katharnakh
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |