|
Publicité | ||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : novembre 2005 Messages : 222 ![]() |
Bonjour
Quand on lance un script via cron, existe-t-il un timeout particulier qui arrête l'exécution du script? Je m'explique. j'ai un script sh qui lance successivement 2 programmes Java. Le premier peut mettre + de 4h de traitements. (je sais c'est beaucoup mais je peux pas faire autrement). le script se présente comme ça Code :
Cron lance le script à la bonne heure, execute bien le premier programme mais ne lance jamais le second (je ne vois même pas la "[SH] lancement2" dans le fichier console, ni celui d'après). Alors je me dis que : -soit au bout d'un certains temps cron arrête lui même le script (mais pas l'execution java) pensant que le script ne reponds plus -soit il n'exécute pas les taches séquentiellement (un peu comme si j'avais mis un & à la fin de la commande) que mon programme2 soit exécuté bien avant la fin du programme. Mais dans ce cas pourquoi je ne vois pas les traces? et pourquoi il ne me fait pas la même chose quand je le lance moi même dans le shell? Bref je penche plus pour la première hypothèse et si c'est ça comment résoudre ce problème? Merci d'avance |
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Laurent WillemsExpert Stop/Start Inscription : septembre 2002 Messages : 2 472 ![]() |
Salut,
Peux-tu fusionner l'erreur standard avec l'output standard afin de voir les éventuelles erreurs? Code :
__________________
Alea Jacta Test! |
||
|
|
00
|
|
|
#3 | |||
|
Membre habitué
![]() Inscription : novembre 2005 Messages : 222 ![]() |
Citation:
je suis sur un serveur ubuntu hardy. merci EDIT: je me pose un petite question comme ça. Si il y avait une erreur au lancement de lancement2.jar, je devrais voir le message "[SH] lancement2" non? Dernière modification par nezdeboeuf62 ; 20/01/2010 à 18h10. |
|||
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : novembre 2005 Messages : 222 ![]() |
Petit bilan de l'execution d'hier soir.
comme log de script ne ne vois que et rien d'autre ni erreur ni rien du tout! simplement la fin du premier programme java. Je reste donc sur mon hypothèse : -cron lance mon script en donnant un PID. -le programme java se lance avec un autre PID. -Voyant qu'au bout d'un certains temps le script ne bouge pas (vu que le programme java dure 4h!!!), cron croit que le script ne réponds plus et donc arrête l'execution. Une fois le programme java terminé, on ne peut plus lancer la suite du script. Donc existe-t-il un moyen de paramétrer ceci? ou puis je voir les logs de cron afin de voir si mon script s'arrête bien de manière forcée???? merci d'avance |
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : septembre 2009 Messages : 201 ![]() |
Hello,
Une autre solution pourrait-être lié au premier lancement qui renverrait un signal de terminaison. Rajouter la redirection du flux d'erreurs ( 2>&1 ) pour le premier lancement permettrait peut-être de déceler une erreur de ce côté |
|
00
|
|
|
#6 | |
|
Membre habitué
![]() Inscription : novembre 2005 Messages : 222 ![]() |
Citation:
Mais ce que je comprends pas c'est pourquoi, ça marche bien lorsque je lance le même script à la main??? |
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() Laurent WillemsExpert Stop/Start Inscription : septembre 2002 Messages : 2 472 ![]() |
Salut,
Lorsque tu lances un programme manuellement, tu es dans un shell avec certaines variables d'environnement définies. Par contre, lorsque tu executes ton programmes via crontab, ces variables ne sont pas définies sauf si tu as pris le soin de le faire dans ton script ou dans la crontab. Ceci pourrait expliquer la différence de comportement entre l'execution manuelle et l'execution via la crontab. Maintenant la seule manière de savoir est d'essayer logguer les erreurs notamment via la méthode qui t'a été demandée précédemment. De plus, il serait également intérressant de savoir ce que font tes programmes java (appels a des commandes systèmes?)
__________________
Alea Jacta Test! |
|
|
00
|
|
|
#8 | |
|
Membre habitué
![]() Inscription : novembre 2005 Messages : 222 ![]() |
Citation:
Mes programmes Java ne font rien de système. C'est assez spécifique donc dur à expliquer mais grosso modo ils vont rechercher des données dans plusieurs bases et les ecrits dans des fichiers. Ca c'est pour le premier programme. Le second reprends ces fichiers puis les recopies dans d'autres dossiers. C'est la grande masse de données à manipuler qui créer de tels temps d'execution En tout cas merci pour les réponses |
|
|
|
00
|
|
|
#9 | ||
|
Membre habitué
![]() Inscription : novembre 2005 Messages : 222 ![]() |
Bonjour,
Ca fait un petit moment que je galère avec ça et donc du coup j'ai changé mon fusil d'epaule. Pour commencer j'ai fais refaire le programme java pour qu'il fasse tout en même temps que l'on lance avec une seule commande. Ce programme génère des fichiers sur le disque, après ces fichiers doivent être copiés dans un autre endroit disponible à l'utilisateur. On ne copie pas directement dans la bonne directory, pour eviter des erreurs (si le programme crash en plein milieu ou ce genre de truc). Or le phénomène est le même. Pour contourner ça, j'ai fait 2 scripts. Le premier contenant l'appel java. Le second s'occupant du transfert de fichier. Code :
Le soucis c'est que j'ai exactement la même chose dans le second script! C'est à dire que si je le lance dans un shell à la main tout se passe super bien par contre si je le lance via cron, seule la première copie se fait, je ne vois même pas les messages 'echo' ni aucune remonté d'erreurs !!! Vraiment je suis perdu, j'en suis à me demander s'il n'y a pas un nombre de lignes limites pour les scripts ou ce genre de truc (totalement stupide)... Bien entendu, j'ai pensé à des problèmes genre des droits sur les fichiers mais j'ai tout mis en 777, bien entendu c'est lancé à partir de la crontab du même utilisateurs que mon shell etc... et ça n'expliquerais pas l'absence de message... Merci pour votre aide |
||
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé
![]() Inscription : février 2008 Messages : 1 896 ![]() |
Bonjour,
Ceci te permettra, j'espère, d'avoir un rapport d'activité de ton script plus efficace Code :
? |
||
|
|
00
|
|
|
#11 | |||
|
Membre habitué
![]() Inscription : novembre 2005 Messages : 222 ![]() |
Citation:
non seulement le rapport est meilleur mais en plus ça à l'air de marcher ! je suis encore en cours de test mais ça se présente vraiment très bien, simplement des erreurs de ma part pour l'adressage (genre il supprime le dossier et pas simple son contenu etc...) mais j'ai pu le faire tourner plusieurs fois sans problèmes. Je suis en train de faire un dernier pour être sur mais ça sent vraiment bon... Et je te remercie pour le script ça m'a appris quelques trucs (notamment l'utilisation des || et &&, très instructif). Par contre je ne comprends toujours pas pourquoi ça ne marcher pas avant (même si c'était très mal codé), peut être le fait d'utiliser bash à la place de sh. A part ça je vois pas. Mais l'essentiel est que ça marche!!! Merci beaucoup !!!!! |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com