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

RedHat / CentOS / Fedora Discussion :

Lancer un script au démarrage de CentOS


Sujet :

RedHat / CentOS / Fedora

  1. #1
    Membre éclairé
    Avatar de yimson
    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Janvier 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 215
    Points : 747
    Points
    747
    Par défaut Lancer un script au démarrage de CentOS
    Bonsoir,

    J'ai un souci pour démarrer le service Tomcat au démarrage de CentOS version 5.9.

    En effet, j'ai créé sur CentOS, un utilisateur qui s'appelle tomcat, je l'ai inséré dans le groupe root. J'ai mis à jour la variable PATH à l'aide des commandes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    PATH=$PATH:/home/tomcat/apache-tomcat-7.0.37/bin
    export PATH
    Pour démarrer automatiquement, j'ai essayé de créer le script shell suivant qui s'appelle start_tomcat.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #!/bin/bash
    cd /home/tomcat/apache-tomcat-7.0.37/bin
    startup.sh
    que j'ai déposé dans le répertoire /etc/init.d/ cela n'a pas marché après le démarrage de mon CentOS, ensuite j'ai essayé de le mettre dans le répertoire /etc/rc6.d/ pareil ca na pas marché.

    Enfin j'ai mis les lignes suivantes à la fin du fichier /etc/rc.d/rc.local mais toujours rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cd /home/tomcat/apache-tomcat-7.0.37/bin
    startup.sh
    Besoin de votre support svp, je sèche !!!

  2. #2
    Membre averti Avatar de blackstreet
    Inscrit en
    Avril 2004
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 304
    Points : 335
    Points
    335
    Par défaut
    Bonjour,

    Tout les script de démarrage dans Linux s'exécute avec l'utilisateur root.

    Pour cela quelques part dans ton script, tu doit avoir quelques chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    su - tomcat --command=....
    .

    De plus, dans tes scripts de démarrage, tu doit redéfinir tes variables d'environnement

  3. #3
    Membre averti Avatar de blackstreet
    Inscrit en
    Avril 2004
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 304
    Points : 335
    Points
    335
    Par défaut
    J'ajouterais aussi qu'il faut pas oublier de le configurer avec chkconfig pour qu'ils s'ajoute dans le démarrage automatique du système.

  4. #4
    Membre éclairé
    Avatar de yimson
    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Janvier 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 215
    Points : 747
    Points
    747
    Par défaut
    Bonjour,

    Merci pour toutes vos contributions. J'ai pu trouver une solution peut être beaucoup plus simple mais qui ne gère pas tout de même l'arrêt du service Tomcat. Ici, l'arrêt du service se fait quand on arrête la machine CentOS.

    La solution est donnée ci-dessous:

    1°) se connecter comme root
    2°) se positionner dans le répertoire /etc/
    3°) écrire dans le fichier rc.local la ligne suivante:
    echo sh /home/tomcat/apache-tomcat-7.0.37/bin/startup.sh >> rc.local

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    su -
    cd /etc
    echo sh /home/tomcat/apache-tomcat-7.0.37/bin/startup.sh >> rc.local
    Après cette manipulation, en principe après le démarrage de votre machine CentOS, le service tomcat se lancera en dernière position après que tous les processus de démarrage se soient lancés.

    Cordialement.

  5. #5
    Membre averti Avatar de blackstreet
    Inscrit en
    Avril 2004
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 304
    Points : 335
    Points
    335
    Par défaut
    Bien que cela ne soit pas la solution optimale, mais sit ça t'arrange, tu peux fermer et indiquer que ce post est résolu.

    Sinon, tu peux te pencher sur les fichiers des services qui sont sous init.d et copier un d'eux pour le manipuler, et faire un qui ressemble un peu.

  6. #6
    Membre éclairé
    Avatar de yimson
    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Janvier 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 215
    Points : 747
    Points
    747
    Par défaut
    Je recherche une solution optimale dans ce sens, et je reviens !!!!

  7. #7
    Membre éclairé
    Avatar de yimson
    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Janvier 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 215
    Points : 747
    Points
    747
    Par défaut
    Bonjour BlackStreet et la com ,

    J'ai essayé de produire le fichier dont le code est le suivant et je l'ai déposé dans le répertoire /etc/init.d/ et je lui ai donné pour nom tomcatd.
    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
    #!/bin/bash
    # 
    #   /etc/init.d/tomcatd
    #
    # chkconfig: 2345 20 80
    # description: this script is designed to 
    # launch tomcat at the starting level of
    # CentOS
     
    TOMCAT_HOME=/home/tomcat/apache-tomcat-7.0.37/bin
    START_TOMCAT=/home/tomcat/apache-tomcat-7.0.37/bin/startup.sh
    STOP_TOMCAT=/home/tomcat/apache-tomcat-7.0.37/bin/shutdown.sh
    PROG="tomcat"
     
    start(){
    	echo -n "Starting $PROG: "
    	cd $TOMCAT_HOME
    	${START_TOMCAT}
    	echo "done."
    }
     
    stop(){
    	echo -n "Shutting down $PROG: "
    	cd $TOMCAT_HOME
    	${STOP_TOMCAT}
    	echo "done."
    }
     
    restart(){
       stop
       sleep 10
       start
    }
     
    relaod(){
       restart
    }
     
    case "$1" in
      start)
          start
          ;;
      stop)
          stop
          ;;
      restart)
          restart
          ;;
      reload)
          relaod
          ;;
      *)
          echo "Usage : $0 {start|stop|restart|reload}"
    esac
     
    exit 0
    Ensuite en tant que utilisateur root, j'ai exécuté les commandes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chkconfig --add tomcatd
    pour ajouter mon script dans la liste des scripts à exécuter au démarrage

    Par la suite, toujours en tant que root, j'ai exécuté la commande suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chkconfig --level 2345 tomcatd on
    pour l'activer dans les runlevel 2, 3, 4 et 5

    Mais, j'ai relancé mon système CentOS, et le service tomcat ne s'est pas lancé automatiquement.
    Ai-je oublié un détail très important? Ou alors ai-je fait quelque chose que je ne devrais pas?
    Merci d'avance pour le support habituel

  8. #8
    Membre averti Avatar de blackstreet
    Inscrit en
    Avril 2004
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 304
    Points : 335
    Points
    335
    Par défaut
    Oui, tu a oublié un détail un important.

    Le Start tomcat doit s'exécuter avec le root. donc forcément dans ton script tu dois ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    su - tomcat -commande="$START_TOMCAT"
    En plus, vérifie si c'est pris en compte en tant que service avec la commande

  9. #9
    Membre éclairé
    Avatar de yimson
    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Janvier 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 215
    Points : 747
    Points
    747
    Par défaut
    Escuse moi, je mets cette commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    su - tomcat -commande="$START_TOMCAT"
    à quel niveau dans mon script ?

    Proposition:

    Je remplace par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    su - tomcat -commande="$START_TOMCAT"
    C'est une question

  10. #10
    Membre éclairé
    Avatar de yimson
    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Janvier 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 215
    Points : 747
    Points
    747
    Par défaut
    Merci à toute la communauté pour le soutien.
    Finalement, ça a marché, j'ai pu ecrire un script qui permet de lancer au démarrage le service tomcat. Et ainsi, acquisition d'une expérience en shell script .

    Je partage avec vous ici, le code du script qui marche.

    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
    #!/bin/bash
    # 
    #   /etc/init.d/tomcatd
    #
    # chkconfig: 2345 20 80
    # description: this script is designed to 
    # launch tomcat at the starting point of
    # CentOS
     
    # Source function library
    . /etc/init.d/functions
     
    TOMCAT_HOME=/home/tomcat/apache-tomcat-7.0.37/bin
    START_TOMCAT=/home/tomcat/apache-tomcat-7.0.37/bin/startup.sh
    STOP_TOMCAT=/home/tomcat/apache-tomcat-7.0.37/bin/shutdown.sh
    PROG="tomcat"
     
    start(){
    	echo -n "Starting $PROG: "
    	cd $TOMCAT_HOME
    	su - tomcat -c ${START_TOMCAT}
    	echo "done."
    }
     
    stop(){
    	echo -n "Shutting down $PROG: "
    	cd $TOMCAT_HOME
    	su - tomcat -c ${STOP_TOMCAT}
    	echo "done."
    }
     
    restart(){
       #We need to know first if the service is on
       stop
       sleep 10
       start
    }
     
    relaod(){
       restart
    }
     
    case "$1" in
      start)
          start
          ;;
      stop)
          stop
          ;;
      restart)
          restart
          ;;
      reload)
          relaod
          ;;
      *)
          echo "Usage : $0 {start|stop|restart|reload}"
    esac
     
    exit 0
    Je suis un consultant en lancement de service au démarrage sur Cent OS (just for fun !!!)

  11. #11
    Membre averti Avatar de blackstreet
    Inscrit en
    Avril 2004
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 304
    Points : 335
    Points
    335
    Par défaut
    Félicitations cher ami.

    Bonne continuation

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

Discussions similaires

  1. (opensolaris) lancer un script au démarrage
    Par olivier57b dans le forum Solaris
    Réponses: 1
    Dernier message: 23/06/2010, 15h36
  2. Lancer plusieurs scripts au démarrage
    Par ricardcoca dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 28/12/2009, 23h39
  3. Lancer script au démarrage d'Ubuntu
    Par NiamorH dans le forum Ubuntu
    Réponses: 8
    Dernier message: 20/11/2009, 16h24
  4. Lancer un script au démarrage d'une machine
    Par publicStaticVoidMain dans le forum Administration système
    Réponses: 3
    Dernier message: 18/07/2009, 16h20
  5. [centOs] lancer vmware server au démarrage du PC
    Par js8bleu dans le forum VMware
    Réponses: 3
    Dernier message: 18/02/2009, 19h37

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