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

Date: 17/03/2009 | Catégories: Open-source,Systeme | Tags: ,,,,,

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 .

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

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:

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

  • 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.