J'ai écrit un petit serveur HTTP en perl qui tourne sur un serveur unix
(aix) :
use HTTP::Daemon;
my $HTTP = HTTP::Daemon->new(LocalAddr=>'sagiter',LocalPort=>8080)
or die "Cannot start the HTTP Server";
while (my $CON = $HTTP->accept) {
my $Pid = fork;
unless ( $Pid ) {
my $REQ = $CON->get_request;
send_page($CON);
$CON->close;
exit;
}
}
Cela fonctionne si ce n'est qu'après chaque connection client, j'ai un
process zombie qui reste en mémoire. Il semblerait que le process "fils" ne
se termine pas correctement mais je ne vois pas pourquoi.
Auriez-vous une idée ? Merci de votre aide.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas George
"Stéphane Müller" wrote in message <dvopno$ljk$:
Cela fonctionne si ce n'est qu'après chaque connection client, j'ai un process zombie qui reste en mémoire. Il semblerait que le process "fils" ne se termine pas correctement mais je ne vois pas pourquoi. Auriez-vous une idée ? Merci de votre aide.
Chercher « zombie » dans la doc de perl ?
If you "fork" without ever waiting on your children, you will accumulate zombies. On some systems, you can avoid this by setting $SIG{CHLD} to "IGNORE". See also perlipc for more examples of forking and reaping moribund children.
entre autres.
"Stéphane Müller" wrote in message <dvopno$ljk$1@shakotay.alphanet.ch>:
Cela fonctionne si ce n'est qu'après chaque connection client, j'ai un
process zombie qui reste en mémoire. Il semblerait que le process "fils" ne
se termine pas correctement mais je ne vois pas pourquoi.
Auriez-vous une idée ? Merci de votre aide.
Chercher « zombie » dans la doc de perl ?
If you "fork" without ever waiting on your children, you will
accumulate zombies. On some systems, you can avoid this by
setting $SIG{CHLD} to "IGNORE". See also perlipc for more
examples of forking and reaping moribund children.
Cela fonctionne si ce n'est qu'après chaque connection client, j'ai un process zombie qui reste en mémoire. Il semblerait que le process "fils" ne se termine pas correctement mais je ne vois pas pourquoi. Auriez-vous une idée ? Merci de votre aide.
Chercher « zombie » dans la doc de perl ?
If you "fork" without ever waiting on your children, you will accumulate zombies. On some systems, you can avoid this by setting $SIG{CHLD} to "IGNORE". See also perlipc for more examples of forking and reaping moribund children.
entre autres.
Jacques Caron
Salut,
On Tue, 21 Mar 2006 12:57:44 +0100, Stéphane Müller wrote:
Cela fonctionne si ce n'est qu'après chaque connection client, j'ai un process zombie qui reste en mémoire. Il semblerait que le process "fils" ne se termine pas correctement mais je ne vois pas pourquoi.
En plus de la réponse de Nicolas, j'ajoute qu'un zombie n'est pas un processus qui ne se termine pas correctement, mais un processus qui s'est terminé, mais qui reste dans la table des processus tant que son "père" n'a pas récupéré son statut (en appelant wait(2) ou ses dérivés).
Jacques. -- Oxado http://www.oxado.com/
Salut,
On Tue, 21 Mar 2006 12:57:44 +0100, Stéphane Müller
<stephane.muller@laposte.net> wrote:
Cela fonctionne si ce n'est qu'après chaque connection client, j'ai un
process zombie qui reste en mémoire. Il semblerait que le process "fils"
ne se termine pas correctement mais je ne vois pas pourquoi.
En plus de la réponse de Nicolas, j'ajoute qu'un zombie n'est pas un
processus qui ne se termine pas correctement, mais un processus qui s'est
terminé, mais qui reste dans la table des processus tant que son "père"
n'a pas récupéré son statut (en appelant wait(2) ou ses dérivés).
On Tue, 21 Mar 2006 12:57:44 +0100, Stéphane Müller wrote:
Cela fonctionne si ce n'est qu'après chaque connection client, j'ai un process zombie qui reste en mémoire. Il semblerait que le process "fils" ne se termine pas correctement mais je ne vois pas pourquoi.
En plus de la réponse de Nicolas, j'ajoute qu'un zombie n'est pas un processus qui ne se termine pas correctement, mais un processus qui s'est terminé, mais qui reste dans la table des processus tant que son "père" n'a pas récupéré son statut (en appelant wait(2) ou ses dérivés).
Jacques. -- Oxado http://www.oxado.com/
Stéphane Müller
"Nicolas George" <nicolas$ a écrit dans le message de news: dvorle$v8k$
Chercher « zombie » dans la doc de perl ?
If you "fork" without ever waiting on your children, you will accumulate zombies. On some systems, you can avoid this by setting $SIG{CHLD} to "IGNORE". See also perlipc for more examples of forking and reaping moribund children.
entre autres.
Merci pour la piste, tout fonctionne correctement maintenant.
"Nicolas George" <nicolas$george@salle-s.org> a écrit dans le message de news:
dvorle$v8k$1@biggoron.nerim.net...
Chercher « zombie » dans la doc de perl ?
If you "fork" without ever waiting on your children, you will
accumulate zombies. On some systems, you can avoid this by
setting $SIG{CHLD} to "IGNORE". See also perlipc for more
examples of forking and reaping moribund children.
entre autres.
Merci pour la piste, tout fonctionne correctement maintenant.
"Nicolas George" <nicolas$ a écrit dans le message de news: dvorle$v8k$
Chercher « zombie » dans la doc de perl ?
If you "fork" without ever waiting on your children, you will accumulate zombies. On some systems, you can avoid this by setting $SIG{CHLD} to "IGNORE". See also perlipc for more examples of forking and reaping moribund children.
entre autres.
Merci pour la piste, tout fonctionne correctement maintenant.