OVH Cloud OVH Cloud

CRON : comportement curieux

2 réponses
Avatar
Denis Leger
Bonjour,


j'ai écrit un petit programme en C pour scanner les en-têtes de mon
courrier et effacer sur le serveur ceux reconnus comme du spam. Le
programme enregistre ses actions dans un fichier de log. En particulier, il
enregistre dans le log, pour chaque e-mail supprimé, l'intégralité de son
en-tête.

J'ai ensuite ajouté une entrée dans ma crontab pour que ce programme soit
lancé toutes les heures.

Du coup, il m'arrive un phénomène curieux : le programme se lance bien
toutes les heures, mais s'arrête en plein milieu sans raison apparente et
sans mettre de message d'erreur. Il s'arrête toujours au même moment,
d'après les logs : affichage d'un bout d'en-tête et plus rien.

Mais si je lance le programme à la main, depuis un terminal, il n'y a pas ce
problème et le programme va jusqu'au bout.

Que puis-je donc bien faire pour trouver la cause du problème ?


--
Denis Léger

2 réponses

Avatar
g.patel
On Thu, 26 Aug 2004 16:18:25 +0200, Denis Leger
wrote:

(...programme lancé par cron...)
Du coup, il m'arrive un phénomène curieux : le programme se lance bien
toutes les heures, mais s'arrête en plein milieu sans raison apparente et
sans mettre de message d'erreur. Il s'arrête toujours au même moment,
d'après les logs : affichage d'un bout d'en-tête et plus rien.

Mais si je lance le programme à la main, depuis un terminal, il n'y a pas ce
problème et le programme va jusqu'au bout.

Que puis-je donc bien faire pour trouver la cause du problème ?


il faut arriver à reconstituer exactement l'environnement d'un
programme lancé sous cron; par exemple en lançant un batch
sous cron qui va imprimer l'environnement dans un fichier.
Puis recréer cet environnement et lancer le programme à la
main. Si le programme se plante sans afficher de message
d'erreur, c'est qu'il faut améliorer les messages d'erreur.
S'il affiche un message d'erreur, il sera simple de retrouver
ce qu'il manque dans l'environnement et il suffira de lui
procurer sous cron. S'il ne se plante pas, c'est qu'il manque
quelque chose dans la reconstitution de l'environnement
sous cron :-)

Gérard Patel

Avatar
Denis Leger

On Thu, 26 Aug 2004 16:18:25 +0200, Denis Leger
wrote:

(...programme lancé par cron...)
Du coup, il m'arrive un phénomène curieux : le programme se lance bien
toutes les heures, mais s'arrête en plein milieu sans raison apparente et
sans mettre de message d'erreur. Il s'arrête toujours au même moment,
d'après les logs : affichage d'un bout d'en-tête et plus rien.

Mais si je lance le programme à la main, depuis un terminal, il n'y a pas
ce problème et le programme va jusqu'au bout.

Que puis-je donc bien faire pour trouver la cause du problème ?


il faut arriver à reconstituer exactement l'environnement d'un
programme lancé sous cron; par exemple en lançant un batch
sous cron qui va imprimer l'environnement dans un fichier.
Puis recréer cet environnement et lancer le programme à la
main. Si le programme se plante sans afficher de message
d'erreur, c'est qu'il faut améliorer les messages d'erreur.


Ben, j'en ai mis partout des messages d'erreur ! C'est bien ce qui m'ennuie.

S'il affiche un message d'erreur, il sera simple de retrouver
ce qu'il manque dans l'environnement et il suffira de lui
procurer sous cron. S'il ne se plante pas, c'est qu'il manque
quelque chose dans la reconstitution de l'environnement
sous cron :-)


Je vais explorer cette voie, je n'avais pas pensé à un problème
d'environnement...


--
Denis Léger