NOM
update-rc.d - Installer ou supprimer les liens vers les scripts
d’initialisation de type Système V.
SYNOPSIS
update-rc.d [-n] [-f] nom remove
update-rc.d [-n] nom defaults [NN | SS KK]
update-rc.d [-n] nom start|stop NN runlevel [runlevel]... . start|stop
NN runlevel [runlevel]... . ...
update-rc.d [-n] nom disable|enable [ S|2|3|4|5 ]
update-rc.d met à jour automatiquement les liens vers les scripts
d’initialisation de type Système V dont le nom est
/etc/rcrunlevel.d/NNnom vers les scripts /etc/init.d/name. Ils sont
lancés par init quand on change de niveau de fonctionnement et ils sont
généralement utilisés pour démarrer ou arrêter des services tels que
les démons. runlevel est l’un des niveaux de fonctionnement autorisés
par init, 0123456789S, et NN est le code à deux chiffres utilisé par
init pour décider de l’ordre d’exécution des scripts.
Cette page de manuel documente seulement le comportement de update-rc.d
et son utilisation. Pour une discussion sur la préparation des scripts
pour l’initialisation de type Système V voyez init(8) et la charte
Debian.
L’INSTALLATION DES LIENS DES SCRIPTS D’INITIALISATION
update-rc.d a deux mode de fonctionnement pour installer des scripts
dans la séquence de démarrage. Un mode d’origine qui utilise des
paramètres en ligne de commande pour décider la configuration de la
séquence et des niveaux d’exécution et le mode par défaut dans lequel
des information sur les dépendances et les niveaux d’exécution
contenues dans les commentaires de l’en-tête des script init.d LSB sont
utilisées à la place. Un tel en-tête doit être présent dans les scripts
init.d. Consultez la page de manuel de insserv(8) pour des détails sur
le format de l’en-tête LSB. La méthode de séquencement du démarrage est
décidée lors de l’installation ou des mise à jour. Lors des mises à
jour, s’il n’y a pas de boucle dans les dépendances déclarées par les
en-têtes LSB de tous les scripts init.d installés et qu’il n’y a pas de
script init.d obsolète, le système de démarrage est convertit en la
méthode de séquencement basée sur les dépendances. La conversion ne se
fait que dans un sens. Les machines qui utilisent le mode d’origine
auront un fichier /etc/init.d/.legacy-bootordering.
Les paquets qui installent des scripts init.d devrait s’assurer que les
deux méthodes fonctionnent pour assurer la compatibilité avec les
systèmes qui n’ont toujours pas migré.
Pour le mode d’origine, la section suivante documente l’ancien
comportement.
Quand update-rc.d est lancé avec les options defaults, start, ou stop,
il crée les liens /etc/rcrunlevel.d/[SK]NNname qui pointent vers le
script /etc/init.d/name.
Quand des fichiers /etc/rcniveau_excution.d/[SK]??nom existent déjà,
update-rc.d ne fait rien. C’est ainsi pour que l’administrateur système
puisse réarranger les liens -- à condition qu’il en reste au moins un
-- sans que sa configuration ne soit réécrite. Le programme
n’installera des liens que si aucun n’est présent, c’est-à-dire s’il
semble que le service n’était pas installé auparavant.
Une erreur courante d’administration d’un système consiste à supprimer
les liens en pensant que ça « désactive » le service, c’est-à-dire que
ça empêchera le service de démarrer. Cependant, si tous les liens sont
supprimés, alors la prochaine fois que le paquet est mis à jour, le
script postinst lancera update-rc.d de nouveau, ce qui réinstallera les
liens à leur emplacement par défaut. La façon correcte pour désactiver
des services est de configurer le service comme étant arrêté dans tous
les niveaux d’exécution pour lesquels il serait démarré par défaut.
Avec le système d’initialisation Système V, cela signifie qu’il faut
renommer le lien symbolique du service de S vers K.
Quand l’option defaults est utilisée, update-rc.d crée des liens pour
démarrer un service dans les niveaux d’exécution 2345 et des liens pour
arrêter un service dans les niveaux 016. Par défaut, tous les liens ont
un numéro de séquence égal à 20, mais il devrait être modifié s’il y a
des dépendances. Par exemple, si le démon B dépend du démon A, alors A
doit être démarré avant B et B doit être arrêté avant A. Ceci se fait
en fournissant deux paramètres NN. En général, les démons principaux
devraient démarrer tôt et être arrêtés tard, alors que les applications
peuvent être démarrée tard et être arrêtée tôt. Consultez la section
EXEMPLES ci-dessous.
Le premier paramètre NN fournit le numéro de séquence de démarrage et
le second paramètre NN fournit le numéro de séquence d’arrêt. Les
scripts d’arrêt sont appelés en premier, avec le paramètre « stop ».
Ensuite les script de démarrage sont appelés en leur fournissant le
paramètre « start ». Dans les deux cas, les scripts sont appelés dans
l’ordre ascendant des numéros de séquence.
Lorsqu’un seul paramètre NN est fourni, le même nombre est utilisé pour
les liens de démarrage et d’arrêt. Ceci est pris en charge pour des
raisons de compatibilité ascendante, mais n’est pas conseillé, puisque
cela peut entraîner une configuration incohérente. Comme règle de base,
si vous augmenter le numéro de séquence pour le démarrage, vous devriez
diminuer le numéro de séquence pour l’arrêt, et vice-versa.
Comme règle empirique, le numéro de séquence du lien d’arrêt doit
valoir 100 moins le numéro de séquence du lien de démarrage ; ceci
permet d’arrêter les services dans l’ordre inverse de leur démarrage.
Bien sûr, en conséquence, le numéro de séquence pour l’arrêt est de 80.
Une valeur par défaut de 20, comme utilisée par update-rc.d, est un
vieux bogue qui ne peut être corriger sans risquer de casser certaines
choses.
Au lieu de defaults, on peut indiquer les niveaux de fonctionnement
dans lesquels lancer ou arrêter les services en utilisant une suite
explicite d’ensembles de paramètres. Chacun de ces ensembles commence
par un paramètre start ou stop de manière à indiquer s’il faut créer
des liens de démarrage ou d’arrêt, puis un numéro de séquence NN, suivi
par un ou plusieurs nombres indiquant les niveaux d’exécution. Cet
ensemble de paramètres se termine par un paramètre « . » (un simple
point).Quand, plutôt que defaults, on utilise une détermination
explicite, il faut habituellement un ensemble de démarrage start et un
ensemble d’arrêt stop. Quand on veut différents codes dans les
différents niveaux de fonctionnement, on peut spécifier différents
ensembles de démarrage start ou différents ensembles d’arrêt stop. Dans
ce cas, et que le même niveau d’exécution est utilisé dans plusieurs
ensembles, seul le dernier compte. Il n’est donc pas possible de créer
plusieurs liens start ou plusieurs liens stop pour un service dans le
répertoire d’un niveau d’exécution.
Le script /etc/init.d/nom doit exister avant de lancer update-rc.d pour
créer les liens.
LA SUPPRESSION DES SCRIPTS
Quand on appelle update-rc.d avec l’option remove les liens dans les
répertoires /etc/rcniveau_excution.d qui pointent vers le script
/etc/init.d/nom sont supprimés. Ce script doit déjà avoir été supprimé.
Si le script est toujours présent, update-rc.d quittera avec un message
d’erreur.
On appelle habituellement update-rc.d dans le script « post-removal »
d’un paquet et quand ce script a détecté que son premier paramètre
était purge. Tout fichier dans les répertoires /etc/rcrunlevel.d qui
n’est pas un lien symbolique vers le script /etc/init.d/name est
préservé.
DÉSACTIVATION DES LIENS DE DÉMARRAGE DES SCRIPTS D’INITIALISATION
Avec l’option disable [ S|2|3|4|5 ], update-rc.d modifie pour les
niveaux d’exécution les liens existants vers le script /etc/init.d/nom
en renommant les liens de démarrage en liens d’arrêt avec un numéro de
séquence égal à 100 moins le numéro de séquence d’origine.
Avec l’option enable [ S|2|3|4|5 ], update-rc.d modifie pour les
niveaux d’exécution les liens existants vers le script /etc/init.d/nom
en renommant les liens d’arrêt en liens de démarrage avec un numéro de
séquence égal à 100 moins le numéro de séquence actuel, revenant ainsi
au numéro de séquence d’origine du script avant qu’il soit désactivé.
Ces deux options ne fonctionnent qu’avec les niveaux d’exécution S, 2,
3, 4 ou 5. Si aucun niveau d’exécution n’est précisé après le mot clé
disable ou enable, le script essaiera de modifier des liens dans tous
les niveaux d’exécution.
OPTIONS
-n Ne fait rien, montre seulement ce qui pourrait être fait.
-f Forcer la suppression des liens même si /etc/init.d/nom existe
encore.
EXEMPLES
Insérer des liens avec l’option « defaults » :
update-rc.d foobar defaults
L’en-tête des dépendances équivalent devrait avoir des dépendances
de démarrage et d’arrêt pour $remote_fs et $syslog, et devrait démarrer
dans les niveaux d’exécution 2 à 5 et s’arreter dans les niveaux 0, 1 et 6.
La même commande, avec une détermination explicite utilisant les
ensembles de paramètres :
update-rc.d foobar start 20 2 3 4 5 . stop 20 0 1 6 .
Une commande plus courante utilisant un ensemble de paramètres
explicites :
update-rc.d foobar start 30 2 3 4 5 . stop 70 0 1 6 .
Insérer des liens dans les niveaux d’exécution par défaut quand B
nécessite A
update-rc.d script_A defaults 80 20
update-rc.d script_B defaults 90 10
Insérer un lien pour un service qui (a priori) ne sera nécessaire pour
aucun autre démon
update-rc.d app_haut_niveau defaults 98 02
Insérer des liens pour un script qui nécessite des services démarrant
ou s’arrêtant au numéro de séquence 20
update-rc.d script_dependant_services_20 defaults 21 19
Retirer tous les liens d’un script (en supposant que foobar a déjà été
supprimé) :
update-rc.d foobar remove
Exemple de désactivation d’un service :
update-rc.d -f foobar remove
update-rc.d foobar stop 20 2 3 4 5 .
Exemple de commande pour installer un script système d’initialisation
et d’arrêt :
update-rc.d foobar start 45 S . stop 31 0 6 .
Exemple de commande pour désactiver un script système d’initialisation
et d’arrêt :
update-rc.d -f foobar remove
update-rc.d foobar stop 45 S .
BOGUES
Consultez http://bugs.debian.org/sysv-rc.
FICHIERS
/etc/init.d/
Le répertoire qui contient en fait les scripts d’initialisation.
/etc/rc?.d/
Le répertoire qui contient les liens utilisés par init et gérés
par update-rc.d.
/etc/init.d/skeleton
Modèle pour l’écriture des scripts d’init.d.
/var/lib/sysv-rc/legacy-bootsequence
Drapeau indiquant que la machine utilise le mode d’origine pour
l’ordre des scripts de démarrage.
VOIR AUSSI
la charte Debian,
/etc/init.d/skeleton,
insserv(8), sysv-rc-conf(8), bum(8), init(8).
TRADUCTION
La traduction de cette page de manuel est maintenue par les membres de
la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez
signaler toute erreur de traduction par un rapport de bogue sur le
paquet manpages-fr-extra.