insserv

Généralités

Sous Debian, les scripts de démarrage sont gérés différement à partir de Debian 6. La commande update-rc.d a été abandonnée au profit de insserv pour ajouter une gestion des dépendances de service.

Cette nouvelle méthode est inscrite dans les scripts de lancement Linux Standard Base (LSB).

Concrètement tous les scripts de lancement de services dans /etc/init.d doivent impérativement contenir l'entête insserv. La gestion des liens symboliques dans les dossiers /etc/rcX.d/ est la même. S = Start et K = Kill pour arrêter avec un numéro pour spécifier l'ordre. Mais maintenant en plus intervient Required-Start et Required-Stop qui sont les services dépendants à lancer ou arrêter avant le service dont on parle.

Documentation

http://refspecs.linuxbase.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html

http://wiki.debian.org/LSBInitScripts

Configuration

Fichier de configuration de insserv qui contient la définition des variables des services ($local_fs, $remote_fs…).

/etc/insserv.conf

Entête en exemple d'un script /etc/init.d/service.

#/bin/sh
### BEGIN INIT INFO
# Provides: scriptname
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO

Tester l'ajout du script service (-n = dry run).

insserv -n service

Ajoute réellement le service au démarrage (-v pour voir ce qui est fait).

insserv service

Supprimer le service de tous les runlevels.

insserv -r service

insserv créé et met à jour les trois fichiers suivants qui contiennent la sémantique du boot.

/etc/init.d/.depend.boot
/etc/init.d/.depend.start
/etc/init.d/.depend.stop