Leser: 2
10 Einträge, 1 Seite |
1 2 3 4 5 6 7 8 9 10 11 12 13
while(sleep 60) { for (datenbankabfrage()) { my $kind = fork; unless ($kind) { tu_was($_); } } } sub tu_was { ... exit 0; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use POSIX qw(:signal_h :errno_h :sys_wait_h);
$SIG{CHLD} = \&Reaper; # diese zeile muss vor dem fork kommen
sub Reaper {
my $pid;
$pid = waidpid(-1, &WNOHANG);
if ($pid == -1) {
# no child waiting => ignore it
}
elsif (WIFEXITED($?)) {
print "Process $pid exited\n";
}
else {
print "False alarm on $pid\n";
}
%SIG{CHLD} = \&Reaper;
} # Reaper
$SIG{CHLD} = sub {wait(); exit }
Quoteprozesse, deren vaterprozess tot ist
QuotePS: das exit natürlich nur, wenn Du nicht mehrere Children erzeugst.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
while(sleep 60) { for (datenbankabfrage()) { my $kind = fork; unless ($kind) { tu_was($_); } } my $pid = waitpid(-1, &WNOHANG); } sub tu_was { ... exit 0; }
10 Einträge, 1 Seite |