J'ai mis ce code dans un bloc END pour mettre à jour une dernière fois la BDD à l'arrêt du daemon :
END {
if (getppid() == 1) { update_stats(); }
}
Avec getppid() == 1, j'ai déjà empêché la mise a jour à l'arrêt du processus initial, mais Proc::Daemon forke deux fois le programme pour le séparer de son parent.
J'aimerai que update_stats() ne soit pas appelé à la fin du premier fork.
J'ai penser tester si $$ (le pid du processus en cours) est >= au pid du processus original + 2 mais ce n'est pas très (voire pas du tout) fiable.
Bref une idée ?
# Pourquoi faire simple...
Posté par jigso . Évalué à 4.
Proc::Daemon::Init;
my $flag = 1;
...
END {
update_stats() if defined $flag;
}
[^] # Re: Pourquoi faire simple...
Posté par Tonton Benoit . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.