Magazine High tech

Création d'un script de démarrage sous Linux

Publié le 17 mars 2009 par Nicolargo

Dans cet article nous allons voir comment automatiser le démarrage d'un service ainsi que son arrêt sur un système GNU/Linux (plus particulièrement sur une distribution Ubuntu 8.04 Server).

A titre d'exemple, nous allons voir comment lancer un portail Liferay au démarrage de la machine, et comment l'arrêter proprement lors d'un reboot ou d'un shutdown.

Création du script

Nous allons donc créer un script nommé 'liferay' que l'on va placer dans le répertoire /etc/init.d .

#!/bin/sh

# le nom du service
SERVICE_NAME=Liferay
# le répertoire où se trouvent les exécutables du service
SERVICE_DIRECTORY=/opt/Portal/bin
# le nom du script de démarrage du service
SERVICE_STARTUP_SCRIPT=startup.sh
# le nom du script d'arrêt du service
SERVICE_SHUTDOWN_SCRIPT=shutdown.sh

usage()
{
   echo "-----------------------"
   echo "Usage: $0 (stop|start|restart)"
   echo "-----------------------"
}

if [ -z $1 ]; then
   usage
fi

service_start()
{
   echo "Starting service '${SERVICE_NAME}'..."
   OWD=`pwd`
   cd ${SERVICE_DIRECTORY} & ./${SERVICE_STARTUP_SCRIPT}
   cd $OWD
   echo "Service '${SERVICE_NAME}' started successfully"
}

service_stop()
{
   echo "Stopping service '${SERVICE_NAME}'..."
   OWD=`pwd`
   cd ${SERVICE_DIRECTORY} & ./${SERVICE_SHUTDOWN_SCRIPT}
   cd $OWD
   echo "Service '${SERVICE_NAME}' stopped"
}

case $1 in
   stop)
   service_stop
   ;;
   start)
   service_start
   ;;
   restart)
   service_stop
   service_start
   ;;
   *)
   usage
esac
exit 0

Maintenant, il faut donner les permissions d'exécution sur ce script

# chmod a+x /etc/init.d/liferay

Automatisation

Maintenant que le script est créé, il ne reste plus qu'à faire en sorte que le service se lance au démarrage de la machine et qu'il se stoppe à l'arrêt de celle-ci. Le runlevel qui nous intéresse ici est le numéro 2, mais on peut appliquer cette configuration pour les autres.

Il existe 2 méthodes pour procéder: la première consiste à créer des liens symboliques à la main dans le répertoire /etc/rc2.d en respectant les conventions de nommage, et la seconde (plus simple), consiste à utiliser la commande update-rc.d (c'est cette méthode que nous allons utiliser).

Avant tout chose, il faut déterminer le moment exact où le script s'exécutera:

  • Démarrage du service
    Le service liferay doit se lancer une fois que le serveur de base de données est démarré (en l'occurrence, il s'agit de MySQL).
    En regardant dans le répertoire /etc/rc2.d, on voit que le service mysql démarre à la position 19 (ce numéro peut changer suivant les configurations), donc nous allons démarrer le service liferay à la position 20.
  • Arrêt du service
    Le service liferay doit s'arrêter avant que le serveur de base de données ne s'arrête.
    En regardant dans le répertoire /etc/rc6.d (le runlevel 6 est consacré à l'arrêt de la machine), on voit que le service mysql s'arrête en position 18. Nous allons donc arrêter le service liferay en position 17.

Voici donc la commande qui permet de configurer le service comme décrit précédemment:

# update-rc.d liferay start 20 2 . stop 17 6 .

Désactiver un service

Pour désactiver le lancement automatique d'un service au démarrage, il existe 3 possibilités:

  • utiliser la commande update-rc.d
    # update-rc.d -f liferay remove
  • supprimer le lien symbolique du répertoire /etc/rcX.d (où X représente le numéro de runlevel désiré)
  • retirer les permissions d'exécution sur le script situé dans le répertoire /etc/init.d

Pour plus d'infos, consulter la documentation de la commande update-rc.d.


Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

  • Ubuntu - Linux Identity Collection

    Ubuntu Linux Identity Collection

    Linux Identity Collection vous propose, en un magazine, 4 variantes de la distribution Ubuntu. L’édition est accompagnée de deux DVD bootables. Lire la suite

    Par  Dictege
    HIGH TECH, INFORMATIQUE, INTERNET, MÉDIAS, PRESSE ÉCRITE
  • Linux Mint 7 Gloria disponible

    Linux Mint Gloria disponible

    La 7ème version de Linux Mint est enfin disponible avec un nombre important de corrections de bug et de nouvelles fonctionnalités. Lire la suite

    Par  Dictege
    HIGH TECH, INFORMATIQUE, INTERNET
  • Ubuntu - Debris Linux

    Ubuntu Debris Linux

    Debris Linux est une mini-distribution (moins de 200 Mo), basée sur la distribution Ubuntu avec un bureau GNOME. Installation Téléchargement : debris 1.8.2.iso... Lire la suite

    Par  Dictege
    HIGH TECH, INFORMATIQUE, INTERNET
  • Ice-Z Linux 3.4

    Ice-Z Linux

    Ice-Z Linux est basée sur Ubuntu 9.04 optimisé pour la productivité (des jeux ont été enlevés). On retrouve OpenOffice, un navigateur léger tel que le... Lire la suite

    Par  Dictege
    HIGH TECH, INFORMATIQUE, INTERNET
  • L'attirail photo sous Linux...

    Q uand on fait de la photographie numérique, pour le fun ou l'art, avec un compact ou un DSLR full frame, les images finissent sur un ordinateur. Ordinateur... Lire la suite

    Par  Sid
    HIGH TECH, INFORMATIQUE, INTERNET
  • Accélérer Firefox sous GNU/Linux

    Accélérer Firefox sous GNU/Linux

    Depuis la migration de mon navigateur Internet favori vers la version 3.5, j'ai constaté un temps de latence assez important lors de l'ouverture d'un nouvel... Lire la suite

    Par  Nicolargo
    HIGH TECH, INFORMATIQUE, INTERNET, LOGICIELS
  • [Linux] Hack facil de linux, même pas mal

    Ah une époque où l'on passe son temps à entendre des phrase du genre "Linux c'est top!", "Linux est hyper sécurisé!" sans pour autant avoir d'explication sur... Lire la suite

    Par  Jeremy.jeanson
    INTERNET, PROGRAMMATION

A propos de l’auteur


Nicolargo 417 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog