Forum général.général Les daemon pour les nuls

Posté par  .
Étiquettes : aucune
0
17
juin
2005
Bonjour à tous,

Je suis sous Linux RedHat et j'aimerais créer un "genre de fichier .bat" pour éxécuter au démarrage du serveur, les 4 lignes de commande que je tape (manuellement) habituellement dans le terminal pour lancer Apache et Tomcat :

/usr/local/apache/bin/apachectl start

export JAVA_HOME=....etc...
export PATH=.....etc...
/var/tomcat/bin/startup.sh


Je voudrais simplement me limiter à ça, et pas créer un fichier de configuration pour lancer/stopper/relancer apache comme j'ai pu le voir sur certains tutoriaux. (bien trop compliqués pour le novice de linux que je suis !!)

J'ai fait des essais en créeant un daemon dans init.d, mais ça voulait pas fonctionner :(
Quelle est la manip' à faire ?

Merci d'avance.
  • # re

    Posté par  (site web personnel) . Évalué à 2.

    #!/bin/bash
    /usr/local/apache/bin/apachectl start
    export JAVA_HOME=....etc...
    export PATH=.....etc...
    /var/tomcat/bin/startup.sh

    Tu enregistre dans monscript.sh

    Tu le rend executable (sinon pour executer faut faire sh monscript.sh) avec chmod +x monscript.sh.

    Et ensuite tu lexecute en faisant ./monscript.sh
  • # init.d

    Posté par  . Évalué à 1.

    Une fois dans le init.d, il me semble qu'il faut faire des liens symboliques vers ce fichier depuis des dossiers rc[runlevel].d (enfin il me semble que le nombre est le runlevel)
    • [^] # Re: init.d

      Posté par  . Évalué à 3.

      Ca s'appelle System V. En gros tu a 5 niveaux de RunLevel. Le RUNLEVEL par défaut est choisi par ta distribution. Tu peux le voir dans le fichier /etc/inittab.

      Si tu démarres en RUNLEVEL 3, les fichiers contenus dans /etc/rc3.d sont évalués dans l'ordre. Ce sont des liens vers les fichiers contenus dans /etc/init.d. S10 est evalué avant S20 et veut dire start. C'est à dire qu'un lien symbolique s'appelant S10Apache vers /etc/init.d/apache va lanver la commande /etc/init.d/apache start. Les liens commençant par K lancent les commandes avec l'argument stop.

      C'est donc pour cela qu'on fait des scripts de démarrage qui prennent en argument start|stop|status.

      Dans ton cas, tu disposes de deux démons que tu voudrais démarrer. Il faut dans un premier temps démarrer apache et ensuite tomcat. Il te faut donc deux scripts de démarrage qui vont se succéder (S90 et S95 par exemple, à voir avec ta distribution). Les scripts de démarrage pour Apache doivent être assez facile à trouver, pour Tomcat, je ne sais pas. En tout cas, un script de démarrage est assez facile à faire.

      En gros tu as une fonction par action (start|stop). Ces fonctions contiennent la suite d'appel à faire pour démarrer ou stopper ton démon. A la fin, tu as un case sur le premier argument et en fonction qu'il soit start ou stop, tu démarres ou tu stoppes le démon.

      Je sais que ça ne répond pas trop à ta question (tu ne voulais pas faire comme ça), mais cette manière est de loin la plus souple et n'est pas si compliquée que ça (une fois que t'as fais un script, tu les as tous faits).

      Bon sinon, je ne sais pas quelle est ta distribution, mais au moins pour apache les scripts de démarrage existent déjà.
  • # rc.local

    Posté par  . Évalué à 3.

    rc.local est le dernier script lancé lors du boot de la machine.

    Tu peux mettre tes lignes dedans, ou lancer un script qui execute ce que tu souhaites.

    C'est en général un très bon endroit pour ce que tu souhaites faire, c'est même fait expres :)

    bon courage.
    • [^] # Re: rc.local

      Posté par  . Évalué à 1.

      La solution du rc.local marche à merveille !

      Merci 1000 fois tout le monde!
      Je note également les autres techniques

      (quel pied quand tout marche :p)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.