babassSyno Posté(e) le 29 mars 2014 Partager Posté(e) le 29 mars 2014 Bonjour, je viens de créer un script .sh qui lance un process java (java -jar MaLibJava.jar). Après installation de java sur le syno, j'ai d'abord testé le lancement du script via un connexion telnet et tout marche bien. Par contre dès que j'utilise le lancement de script via une tache planifiée, il n'y a rien a faire la commande java n'est pas reconnue. Quand je redirige la sortie standard vers un fichier de log je visualise bien les commandes echo etc ..... de mon script sh mais ma commande java n'est jamais interprétée. Auriez vous une piste ? Des conseils ? Merci d'avance babass 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 29 mars 2014 Partager Posté(e) le 29 mars 2014 (modifié) Encore un qui a oublié de spécifier le PATH dans son script... je me trompe? Modifié le 29 mars 2014 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
babassSyno Posté(e) le 29 mars 2014 Auteur Partager Posté(e) le 29 mars 2014 (modifié) Bonjour CoolRaoul, désolé de te désevoir mais j'ai bien spécifié le PATH avec le chemin du rep de java !!!! Ce qui m'étonne c'est que si je n'avais pas fait cette étape je devrais avoir un "commande pas reconnue" ou quelque chose du genre masi rien !!! Merci qd même pour ta réponse .... Mon script : echo "--- Start ----" PATH=/bin:/usr/bin:/usr/syno/bin:/volume1/public/ejre1.7.0_51/bin echo $PATH java -jar MaLib.jar echo "--- End ----" Pour rappel j'ai bien précisié qu'avec une connexion telnet (sur le NAS), le script s'execute correctement !!!! Modifié le 29 mars 2014 par babassSyno 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 29 mars 2014 Partager Posté(e) le 29 mars 2014 (modifié) Pour rappel j'ai bien précisier qu'avec une connexion telnet (sur le NAS), le script s'execute correctement !!!! Et alors? Ce n'est pas contradictoire avec mon hypothèse: En connexion telnet (ou ssh) le PATH est celui défini/modifié dans "/etc/profile" (et "~/.profile" éventuellement) En tache planifié, c'est le PATH par défaut qu'on récupère. Donc si tu avait oublié de le spécifier dans ton script on aurait bien eu le résultat annoncé. Ce qui m'a induit en erreur est que tu as écris initialement "dès que j'utilise le lancement de script via une tache planifiée, il n'y a rien a faire la commande java n'est pas reconnue" (alors que maintenant tu écris que ce n'est pas cette erreur-la que tu constates) Je pense qu'il doit manquer d'autres variables d'environnement (JAVA_HOME peut-être) Modifié le 29 mars 2014 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
babassSyno Posté(e) le 29 mars 2014 Auteur Partager Posté(e) le 29 mars 2014 ok j'essaie d'ajouter cette variable et je te dis si c'est mieux, 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 29 mars 2014 Partager Posté(e) le 29 mars 2014 Ajouter l'option "-verbose" à la commande "java" pourrait être utile aussi 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
babassSyno Posté(e) le 29 mars 2014 Auteur Partager Posté(e) le 29 mars 2014 Je suis d'accord mais si java n'est pas reconnue (je dis pas reconnue car pas interprétée) comme commande je ne peux pas jouer avec les options. Après set de la var JAVA_HOME même comportement. Juste pour être sure, si je fais une connexion telnet sur le nas et que je fais un java -version pour vérifier l'install de java, on est d'accord que c'est bien l'install de java sur le nas qui va être lue (car install ok). (De toute façon je vois bien que c'est la version que j'ai installé sur le nas qui est lue). Tjs dans l'impasse !!!! 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 29 mars 2014 Partager Posté(e) le 29 mars 2014 (modifié) si java n'est pas reconnue (je dis pas reconnue car pas interprétée) comme commande je ne peux pas jouer avec les options. Vu qu'on n'a pas de log (avec un message d'erreur explicite) on ne peut pas conclure si la commande n'est pas reconnue ou si elle plante. Modifie ton script pour qu'il génére un log en ajoutant ce qui suit en première ligne (apres celle avec "#!"): exec >/tmp/toto.log 2>&1 et reviens nous en donner le contenu après l'avoir exécuté via le planificateur de taches. Modifié le 29 mars 2014 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
babassSyno Posté(e) le 29 mars 2014 Auteur Partager Posté(e) le 29 mars 2014 Hey CoolRaoul, en fait la commande java est correctement interprétée c'est juste la redirection de la sortie qui ne tracait pas les logs java. J'ai maintenant des logs de commande java. Bon et bien c'est nickel, par contre tu peux me dire a quoi corresond le 2>&1 ? Merci bien pour ton aide en tout cas 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 29 mars 2014 Partager Posté(e) le 29 mars 2014 (modifié) Bon et bien c'est nickel, par contre tu peux me dire a quoi corresond le 2>&1 ? En shell, une simple redirection ("> fichier") ne s'applique qu'a la sortie standard (descripteur No 1). Mais les messages d'erreurs et d'informations vont vers la sortie d'erreur (descripteur No 2). "2>&1" redirige cette sortie d'erreur dans le même flux de sortie que la sortie standard. Modifié le 29 mars 2014 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
babassSyno Posté(e) le 29 mars 2014 Auteur Partager Posté(e) le 29 mars 2014 Ok merci 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.