Fork two extra processes (or maybe just one) -- one to run the application, and the other to monitor the directory contents.
if ($proc_pid = fork) {
# parent
}
elsif (defined $proc_pid) {
exec $command, @args;
die "can't exec $command @args: $!";
}
else {
die "can't fork: $!";
}
if ($count_pid = fork) {
# parent
}
elsif (defined $count_pid) {
opendir DIR, $dir_to_be_watched
or die "can't open $dir_to_be_watched: $!";
while (1) {
# UPDATED -- who cares WHAT the files are?
my $files = -2; # -2 for . and ..
$files++ while defined readdir DIR;
last if $files == $N;
rewinddir DIR;
}
kill -TERM => $proc_pid;
exit;
}
else {
die "can't fork: $!";
}
# parent can go on its merry way
japhy --
Perl and Regex Hacker |