Bonjour,
tout d'abord mon environnement : Fedora 6 - Perl 5.8.8
Toutes les nuits, j'execute via cron un script bash pour envoyer une newsletter aux inscrits de mon site (environ 100 000).
Ce script démarre 20 scripts en perl ainsi :
perl -w envoi-newsletter.pl --from 0 --length 5000 > /home/log/"$d1"/"$d2"/envoi-newsletter_"$datetime"_01.log 2>/home/log/"$d1"/"$d2"/error_envoi-newsletter_"$datetime"_01.log &
je fais varier les valeurs from et length correspondant à un Limit X,Y en MySQL
Jusque là tout va bien.
Les 20 commandes perl sont executées, chacune pour une série de mail. Or, et cela de façon aléatoire, sur les 20 scripts en tache de fond, certains se termine proprement (c'est à dire bouclent sur les 5000 adresses mails), mais d'autre s'arrêtent, sans dire pourquoi.
J'ai pourtant tout un tas de messages de suivi d'execution en stdout, me permettant de vérifier le bon déroulement de mes scripts. Mais lorsque l'un des processus s'arrete, je n'ai aucune erreur ; même dans /var/log...
L'envoi prend 1h30 au total. Sur les 20 scripts perl, environ 12 arrivent au bout, les autres se stoppent de temps à autre, mais pas en même temps.
Comment un processus peut-il s'arreter sans rien dire ? Alors même que cette même commande, le jour d'avant avait très bien marché (et là, c'était un autre script qui se stoppait).
Si vous avez une idée, je suis preneur.
Merci !
Poste le Friday 13 April 2007 12:06:38