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 ?
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
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
On Thu, 26 Aug 2004 16:18:25 +0200, Denis Leger
<denis.leger@laposte.net> 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 :-)
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
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
On Thu, 26 Aug 2004 16:18:25 +0200, Denis Leger
<denis.leger@laposte.net> 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...
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...