J'aimerai qu'un client puisse lancer une requête par SOAP sur un serveur
perl utilisant SOAP::Lite.
Le problème est que la tache demandée prend beaucoup de temps d'ou l'idée de
lancer la chose en tache de fond en faisant un fork dans la "sub" concernée.
mais visiblement les PID enfants ne meurrent pas !
Voici un bout de progamme pour illustrer la chose:
#--------------------------------------#
#!/usr/bin/perl -w
use strict;
use SOAP::Transport::HTTP;
my $daemon = SOAP::Transport::HTTP::Daemon
-> new (LocalPort => 8989)
-> dispatch_to('Test')
;
print "Contact to SOAP server at ", $daemon->url, "\n";
$daemon->handle;
package Test;
sub toto {
if ( fork() ) {
# ici, c'est le process parent
return 'ok';
} else {
# Simule un long traitement...
sleep 10;
return 1;
}
}
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
dominix
Nicolas wrote:
Bonjour,
J'aimerai qu'un client puisse lancer une requête par SOAP sur un serveur perl utilisant SOAP::Lite.
Le problème est que la tache demandée prend beaucoup de temps d'ou l'idée de lancer la chose en tache de fond en faisant un fork dans la "sub" concernée.
mais visiblement les PID enfants ne meurrent pas !
Sous Mac OS X (10.1.5) cela fonctionne plutot bien
sauf que le child devient Zombie au lieu de mourrir et il disparait lorsque le parent meurt. le cas de zombification ne sont pas alarmant car les ressources sont libérés.
j'ai pas testé sous linux (j'ai que des serveurs de prod) et sous cygwin ca core dump au deuxieme appel client ;-/
-- dominix
Nicolas wrote:
Bonjour,
J'aimerai qu'un client puisse lancer une requête par SOAP sur un
serveur perl utilisant SOAP::Lite.
Le problème est que la tache demandée prend beaucoup de temps d'ou
l'idée de lancer la chose en tache de fond en faisant un fork dans la
"sub" concernée.
mais visiblement les PID enfants ne meurrent pas !
Sous Mac OS X (10.1.5) cela fonctionne plutot bien
sauf que le child devient Zombie au lieu de mourrir
et il disparait lorsque le parent meurt.
le cas de zombification ne sont pas alarmant car les ressources
sont libérés.
j'ai pas testé sous linux (j'ai que des serveurs de prod)
et sous cygwin ca core dump au deuxieme appel client ;-/
J'aimerai qu'un client puisse lancer une requête par SOAP sur un serveur perl utilisant SOAP::Lite.
Le problème est que la tache demandée prend beaucoup de temps d'ou l'idée de lancer la chose en tache de fond en faisant un fork dans la "sub" concernée.
mais visiblement les PID enfants ne meurrent pas !
Sous Mac OS X (10.1.5) cela fonctionne plutot bien
sauf que le child devient Zombie au lieu de mourrir et il disparait lorsque le parent meurt. le cas de zombification ne sont pas alarmant car les ressources sont libérés.
j'ai pas testé sous linux (j'ai que des serveurs de prod) et sous cygwin ca core dump au deuxieme appel client ;-/
-- dominix
Samuel Mouniée
sauf que le child devient Zombie au lieu de mourrir et il disparait lorsque le parent meurt. le cas de zombification ne sont pas alarmant car les ressources sont libérés.
pour qu'un fils meure proprement, il faut que le pere fasse au moins un wait apres un sig_child. en gros et en perl, ca donne :
$SIG{CHLD} = sub { wait };
.s'nuoM
sauf que le child devient Zombie au lieu de mourrir
et il disparait lorsque le parent meurt.
le cas de zombification ne sont pas alarmant car les ressources
sont libérés.
pour qu'un fils meure proprement, il faut que le pere fasse au moins un
wait apres un sig_child. en gros et en perl, ca donne :
sauf que le child devient Zombie au lieu de mourrir et il disparait lorsque le parent meurt. le cas de zombification ne sont pas alarmant car les ressources sont libérés.
pour qu'un fils meure proprement, il faut que le pere fasse au moins un wait apres un sig_child. en gros et en perl, ca donne :