Dominique Meeùs
Dernière modification le   
retour à la page principale du dossier

Services en System V

Table of contents

Pour démarrer un service, il faut dans /etc/init.d un script, disons /etc/init.d/mydaemon qui commande le service. Le script doit accepter en paramètre sur la ligne de commande les commandes start, stop, restart, reload (optionnel — recharger le fichier de configuration), force-reload (recharger le fichier de configuration si c’est possible, redémarrer sinon). On peut alors lancer le service par la commande

$ sudo /etc/init.d/mydaemon start

La commande service sert à démarrer les services par leur script dans /etc/init.d ; on peut donc faire aussi

$ sudo service mydaemon start

Je constate que service existe dans un Ubuntu 10.4 Desktop, mais pas dans un serveur Lenny, lequel offre par contre invoke-rc.d comme Ubuntu.

Pour un démarrage automatique (System V) lors du boot, il faut des liens symboliques à ce script dans les /etc/rc?.d des runlevel appropriés. Supposons que le script soit /etc/init.d/mydaemon. On aurait normalement besoin de quelque chose comme

$ sudo ln -s /etc/init.d/mydeamon /etc/rc6.d/K15mydeamon
$ sudo ln -s /etc/init.d/mydeamon /etc/rc0.d/K15mydeamon
$ sudo ln -s /etc/init.d/mydeamon /etc/rc1.d/K15mydeamon
$ sudo ln -s /etc/init.d/mydeamon /etc/rc2.d/S84mydeamon
$ sudo ln -s /etc/init.d/mydeamon /etc/rc3.d/S84mydeamon
$ sudo ln -s /etc/init.d/mydeamon /etc/rc4.d/S84mydeamon
$ sudo ln -s /etc/init.d/mydeamon /etc/rc5.d/S84mydeamon

où K veut dire kill et S start, les deux chiffres suivants donnant l’ordre des opérations. Voyez votre /etc/rc3.d par exemple. Attention, contrairement à d’autres Linux, Debian ne différencie pas a priori les niveaux 2 à 5.

Certains semblent dire que la commande update-rc.d serait destinée aux scripts dans les packages, déconseillée en usage courant pour lequel on recommande sysv-rc-conf ou bum (GTK2), qui ne sont pas présents par défaut dans Lenny. D’autres au contraire disent que la commande

$ sudo update-rc.d mydaemon defaults

donnerait plus sûrement des liens symboliques comme ci-dessus. En y regardant d’un peu plus près, les défauts ne sont pas recommandés, parce qu’ils donnent 20 partout alors qu’on recommande que les numéros d’ordre de démarrage et d’arrêt aient une somme de 99 (comme ci-dessus) ou 100. La bonne commande serait alors

$ sudo update-rc.d mydaemon defaults 85 15

pour une application qui ne doit pas démarrer dans les premières. Les commandes

$ sudo update-rc.d mydaemon disable
$ sudo update-rc.d mydaemon enable

permettent de suspendre ou de rétablir le démarrage automatique. Cela comporte cependant le risque de se perdre dans une mise à jour. On recommande maintenant plutôt de contrôler la désactivation d'un service par un fichier override comme dans l'exemple echo "manual" > /etc/init/apport.override pour désactiver le service apport de rapports de bugs s'il devient envahissant.

Dominique Meeùs . Date: 2011… 2014