IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

script ne fonctionne pas quand on l'appelle via crontab


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 36
    Par défaut script ne fonctionne pas quand on l'appelle via crontab
    Bonjour,

    j'ai le script ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    #!/bin/sh
     
     #
     #
     #
     # cmk
     
     # shutdown tomcat6 and wait
     
     
     ####### Stop des services tomcat #########################
     
     # get the tomcat pid
    tomcat_pid=`ps -ef | grep tomcat | cut -c10-14`
     
     if [ -n "$tomcat_pid" ];   then
       echo "arret service tomcat6"
       # arret IA et Web Service
       service tomcat6 stop
    echo "service tomcat6 arrete"
     fi
     
     
     ############## Arret par des kill des process s'ils existent encore #############
     
     # if tomcat_pid exists, kill the process (service tomcat)
     tomcat_pid=`ps -ef | grep tomcat | cut -c10-14`
     
     if [ -n "$tomcat_pid" ] ;  then
    echo "kill tomcat_pid 1"
     kill $tomcat_pid
    echo "tomcat_pid killed"
     sleep 60
     fi
     
     # if tomcat_pid still exists, really kill the process
     if [ -n "$tomcat_pid" ] ; then
    echo "kill tomcat_pid"
     kill -n 9 $tomcat_pid
    echo "tomcat_pid killed"
     sleep 10
     fi
     
     
     
    ######## Arret APACHE ############
    echo "arret d'apache"
     service apache2 stop
    echo "apache arrete"
     sleep 10
     
     
     
     ##### Relance des services ###############
    echo "redemarrage d'apache"
     service apache2 start
    echo "apache demarre"
     sleep 5
     
     # clear log
     #rm -f /usr/local/tomcat6/logs/catalina.out
     
     # restart  tomcat
    echo "start service tomcat6"
     service tomcat6 start
    echo "service tomcat6 demarre"
    Les droits sont positionnés à 755

    le script marche parfaitement bien lorsque je l'appelle depuis la ligne de commande root@monserveur:~#

    Par contre, il plante quand je l'appelle via un cron :

    /etc/cron.daily/recharge_tomcat:
    arret service tomcat6
    service tomcat6 arrete
    /etc/cron.daily/recharge_tomcat: 21: service: not found
    kill tomcat_pid 1
    run-parts: /etc/cron.daily/recharge_tomcat exited because of uncaught signal 15
    J'ai essayé plusieurs solutions pour l'appel :
    - via crontab -e : m h * * * /le/chemin/complet/du/script
    - via cron.daily, en placant le script dans le dossier /etc/cron.daily, sans l'extension .sh et en l'appelant via crontab -e : m h * * * cd / && /etc/cron.daily
    meme punition....

    je ne pense pas que ca vienne de la syntaxe de l'appel.
    je ne comprends pas pourquoi ca marche manuellement, mais pas quand on veut l'automatiser via un cron, enfin, ca démarre mais ca plante au milieu....

    Je suppose que ca tient du meme pb : quand je l'appelais, en ligne de commande, dans le dossier le contenant, via #./recharge_tomcat.sh, ca marchait, mais ca plantait au meme endroit si je l'appelais via #bash recharge_tomcat.sh

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 672
    Par défaut
    Bonjour,

    ben oui, c'est toujours le même problème (il y a pourtant des tonnes de messages à ce propos), le PATH de cron est très restreint; service n'y est sûrement pas.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    ben oui, c'est toujours le même problème (il y a pourtant des tonnes de messages à ce propos), le PATH de cron est très restreint; service n'y est sûrement pas.
    A peu près 2 par mois

  4. #4
    Membre averti
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 36
    Par défaut
    Désolée si je provoque des redites...je JURE que j'ai fait de nombreuses recherches.

    toujours est-il que ca plante, mais APRES avoir arrete le service tomcat.
    J'ai changé le script et est ajouté le chemin complet vers le service :
    /usr/sbin/service tomcat6 restart

    voila ce que j'ai maintenant : ca plante au meme endroit, mais sans dire pourquoi, grrrr

    /etc/cron.daily/recharge_tomcat:
    arret service tomcat6
    Stopping Tomcat servlet engine: tomcat6.
    service tomcat6 arrete
    kill tomcat_pid 1
    run-parts: /etc/cron.daily/recharge_tomcat exited because of uncaught signal 15

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 672
    Par défaut
    ben oui, c'est toujours le même problème (il y a pourtant des tonnes de messages à ce propos) (bis ),
    parser la sortie de ps est source d'ennuis, parce que le `grep' apparaît lui aussi dans la liste (en train de chercher le nom du process).

    pourquoi ne pas utiliser pkill ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre averti
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 36
    Par défaut
    arfff ben décidément, je cumule....

    je teste..

  7. #7
    Membre averti
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 36
    Par défaut
    voila donc mon script...pouvez vous me dire si c'est bon..? merci ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    #!/bin/sh
    #!/usr/sbin
    #!/bin
     #
     #
     #
     # cmk
     
     # shutdown tomcat6 and wait
     
     
     ####### Stop des services tomcat #########################
     
     # get the tomcat pid
    tomcat_pid=`ps -ef | grep tomcat | cut -c10-14`
     
     if [ -n "$tomcat_pid" ];   then
       echo "arret service tomcat6"
         /usr/sbin/service tomcat6 stop
    echo "service tomcat6 arrete"
     fi
     
     
      # if tomcat_pid exists, kill the process (service tomcat)
     tomcat_pid=`ps -ef | grep tomcat | cut -c10-14`
     
     if [ -n "$tomcat_pid" ] ;  then
    /usr/bin/pkill tomcat6
    echo "tomcat_pid killed"
     sleep 60
     fi
     
     # if tomcat_pid still exists, really kill the process
     if [ -n "$tomcat_pid" ] ; then
    /usr/bin/pkill tomcat6
    echo "tomcat_pid killed"
    sleep 10
     fi
     
     
    ######## Arret APACHE ############
    echo "arret d'apache"
     /usr/sbin/service apache2 stop
    echo "apache arrete"
     sleep 10
     
     
     ##### Relance des services ###############
    echo "redemarrage d'apache"
     /usr/sbin/service apache2 start
    echo "apache demarre"
     sleep 5
     
     # restart  tomcat
    echo "start service tomcat6"
     /usr/sbin/service tomcat6 start
    echo "service tomcat6 demarre"

  8. #8
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 672
    Par défaut
    mouais.

    pourquoi ne pas utiliser pgrep ou pidof, plutôt que de continuer à parser ps ?

    C'est quoi le problème avec tomcat6 ? il ne s'arrête pas forcément via service ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajax et XML. Mon script ne fonctionne pas.
    Par Dougui_bzh dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/07/2008, 09h04
  2. Script ne fonctionne pas
    Par Sylv@in dans le forum VBA Outlook
    Réponses: 5
    Dernier message: 28/01/2008, 08h24
  3. Réponses: 7
    Dernier message: 08/07/2007, 19h51
  4. Partie d'un script ne fonctionne pas en cgi
    Par shgamer dans le forum Web
    Réponses: 1
    Dernier message: 08/02/2006, 01h34
  5. Script ne fonctionne pas sous IE
    Par Stessy dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 29/09/2005, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo