• [^] # Re: init.d

    Posté par . En réponse au message Les daemon pour les nuls. É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à.