Hi,
I was wondering if someone can shed some light on a problem I am
having. I have a sub routine that forks each variable in an array one
at a time. But after the last element in the array the program exists
from the sub routine, it does not continue after the the last element
in the array is done forking.
<code>
sub tarusers {
foreach my $user (@home) {
#creating fork for each user to free memory when the child dies.
my $pid;
unless ($pid = fork) {
while (fork) {
# in here I have code that tar users on a remote box
and gzips them on l;ocal machine. Plus logs everything to a mysql
db.
exit 0;
}
exit 0;
}
waitpid($pid,0);
}
# start tarring home2 users.
if (@home2) {
foreach my $user2 (@home2) {
my $pid;
unless ($pid = fork) {
while (fork) {
# here I have code that tars users on a
remote box and gzip locally. The @home2 may or may not exists
exit 0;
}
exit 0;
}
waitpid($pid,0);
}
}
}
</code>
The problem is when it exits the sub routine before the if(@home2).
I am not to sure how to change the code to continue. I know the @home2
exists because I can print it out. I am just having a hell of a time
with forking and returning to the parent.
Can anyone offer any suggestions?
thanks,
--chad
signature.asc
Description: This is a digitally signed message part
