in reply to How to fork one and only one child process from a loop ?
This skeleton has no error checking, but it does only spawn one child.
my $kidpid; while( ... loop condition ... ) { . . . if( ! $kidpid) { if(0 == ($kidpid=fork())) { # I'm the child exec { ... } die("How did I get here?"); } } # I'm the parent, keep doing stuff . . . # Before I loop, do a lame check to make sure kid # is still running. Ought to use a Proc:: Module $kidpid=0 if(! grep { m/^\s+$kidpid\s/ } `ps ax`); }
|
|---|