Fork Does a fork(2) system call to create a new process running the same program at the same point. It returns the child pid to the parent process, `0' to the child process, or `undef' if the fork is unsuccessful.
In your code example you have
Your logic is the same as mine.if (my $pid = fork()) { # a true or non-zero value for the parent # stuff } else { # a false value or 0 for the child # stuff }
I used system because that is what he was using, it makes it clearer (at least to me) how his example correlated to my solution. I also tend to leave out the extra error checking because it can cause one to miss the point of the example...and by that token, you're not checking to see if your fork failed. :)
To error test everything I guess the code would look like
give me a bit and I'll figure out how to make $? look pretty :)foreach my $wks (@wkslist) { my $pid = fork; if (!defined($pid)) { die "fork failed: $!"; } elsif ($pid == 0) { # child print "rshing to $wks\n"; exec("$rsh_cmd $wks ls") || die "exec failed for $wks: $!"; } else { push(@pids,$pid); } } foreach my $pid (@pids) { waitpid($pid,0); if ($? != 0) { print "non zero exit from $pid: $?"; } }
/\/\averick
perl -l -e "eval pack('h*','072796e6470272f2c5f2c5166756279636b672');"
In reply to Re: Re: Re: Background process using a system call
by maverick
in thread Background process using a system call
by jalebie
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |