Thread fork() unter mod_perl (3 answers)
Opened by pq at 2008-05-05 17:36

pq
 2008-05-05 17:36
#109211 #109211
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
ich habe ein kleines Problemchen mit Zombies.
wenn ich folgenden Code aus mod_perl heraus starte, bleibt immer ein Zombie übrig:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
local $SIG{CHLD} = "IGNORE";
if (my $pid = fork) {
}
else {
    print "child ($$)";
    # mach was aufwaendiges
    close STDOUT;
    close STDERR;
    close STDIN;
    CORE::exit;
}
# parent


wenn ich das ganze in der Kommandozeile starte, bleibt kein Zombie da, auch wenn
der parent-Prozess noch läuft.

Wenn ich allerdings das local() wegnehme, funktioniert es auch in mod_perl wie gewünscht.
Aber dadurch setze ich ja den Handler global und evtl. verlassen sich andere Funktionen
auf den default. Jemand eine Idee?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread fork() unter mod_perl