Re: [CBLX] Désolé! Je ne comprends pas update-rc.d & brltty!

[ Thread Index | Date Index | More lists.tuxfamily.org/carrefourblinux Archives ]


Michel,

Voici l'idée des scripts de démarrages de services Unix,  suivie d'une
explication succinte de la syntaxe de update-rc.

Les systèmes Unix depuis la nuit des temps gèrent ce qu'on appelle des
niveaux d'exécutions (runlevel in english). En gros, le processus init
qui est le premier processus créée par le noyau passe par des niveaux
d'exécutions allant de 1 à 5. Dans chaque niveau d'exécutions, certaines
fonctionnalités du système sont admises et pas d'autres. Quand init
démarre, il commence par le niveau 1 et remonte séquentiellement vers
les niveaux 2, 3, etc, jusqu'au dernier niveau 5 ou avant si on le lui
précise.

On notera que depuis la version 6.10 de ubuntu, un nouvel outil pour
gérer ces niveaux d'exécutions et d'autres fonctions est utilisé. Il
s'agit de l'outil upstart. Cet outil a changé légèrement la
signification des runlevels d'unix, mais il n'est pas encore adopté
universellement. Par exemple, Debian ne l'a pas encore adopté
officiellement. Upstart reste cependant compatible avec les niveax gérés
par init.

Voici les niveaux d'exécutions classiques et leur signification.

- niveau 1 : mode mono-utilisateur, seul le travail en console est
possible. Très utile pour effectuer de la maintenance système sur une
machine multi-utilisateurs ou un serveur connecté au réseau.

- niveau 2 : est un mode multi-utilisateur mais sans la pile réseau
TCP/IP. Seuls les terminaux série sont admis.

- niveau 3 : toutes les connexions réseaux sont admises, mais le système
graphique X n'est pas démarré.

- niveau 5 : le système fonctionne normalement et tous les services sont
lancés y compris l'interface graphique.

En plus de ces niveaux, le niveau 0 sginifie arrêt du système et le
niveau 6 signifie redémarrage. On notera que upstart ne gère plus que
deux niveaux : 1 et 2. On estime, à juste titre, que le reste sont des
reliquats historiques guère très utile aujourd'hui.

Maintenant, comment utilise-t-on dans la pratique ces niveaux
d'exécutions ? En fait le procesus init va regarder dans les
répertoires /etc/rcN.d où N est le numéro du runlevel en question ce
qu'il doit lancer ou arrêter quand il arrive au niveau en question. Par
exemple, dans /etc/rc3.d on trouvera la liste des services à démarrer ou
à arrêter quand le système entre dans le niveau d'exécution n°3.

Il y a trois conventions utilisées pour la gestion de ces
répertoires /etc/rcN.d :

1- ces répertoires ne contiennent que des liens symboliques vers les
vrais scripts qui se trouvent dans /etc/init.d

2- les scripts se trouvant dans /etc/init.d supportent au minimum deux
arguments : start et stop. Le premier lance le service  et le second
l'arrête.

3- les liens symboliques contenus dans les répertoires /etc/rcN.d sont
nommés de manière  très précises : Ils commencent par S ou K suivi d'un
nombre à deux chiffres suivi du nom du script cible se trouvant
dans /etc/init.d
S signifie démarrer le service (start).
K signifie arrête le service (kill)
le nombre à deux chiffre est l'ordre de démarrage du service. Le service
numéroté 20 démarrera avant le 21, etc. Pour un même numéro, l'ordre
alphabétique du nom du script est alors utilisé.

Pour fixer les idées, si le processus init trouve dans le
répertoire /etc/rc3.d/ un lien symbolique nommé S30brllty il va procéder
comme suit : dès qu'il entre dans le niveau d'exécution 3 il va exécuter
la commande "/etc/init.d/brltty start" après avoir exécuté tous les
scripts ayant un numéro inférieur à 20.

S'il trouve dans /etc/rc3.d/ un lien symbolique nommé K80monservice
alors il exécutera "/etc/init.d/monservice stop" après avoir lancé tous
les scripts "kill" de numéro inférieur à 80.

Ceci étant dit, la syntaxe de update.rc devient limpide. La voici :

update-rc.d foobar start 20 2 3 4 5 . stop 20 0 1 6 .

Cette commande demande à init de lancer le service "foobar" dans les
niveaux d'exécution 2, 3, 4 et 5 avec l'ordre n° 20. Elle demande
également de stopper le service "foobar" dans les niveaux 0, 1 et 6
également avec l'ordre d'exécution n°20.

Concrètement, update-rc.d réalisera ceci :

- il va créer dans les répertoires /etc/rc2.d, /etc/rc3.d, /etc/rc4.d
et /etc/rc5.d le lien symbolique S20foobar qui pointe vers l'unique
script /etc/init.d/foobar

- il va créer dans les répertoires /etc/rc0.d, /etc/rc1.d et /etc/rc6.d
le lien symbolique K20foobar qui pointe vers l'unique
script /etc/init.d/foobar

Voilà.
Tarik

Le lundi 17 mai 2010 à 10:43 +0200, Michel a écrit :
> Bonjour tous! Comprendre l'utilisation de update-rc.d est au-dessus de
> mes compétences ou de mon cerveau. Par exemple, ce que dit leexemple du
> manuel:
> update-rc.d foobar start 20 2 3 4 5 . stop 20 0 1 6 .
> Ce n'est pas clair du tout pour moi. Je ne comprends pas ces chiffres.
> Un peu d'aide svp. Merci. Amitiés. A+
>
>
>
> ---



---
--
   CarrefourBLinuX MailingListe
   Pour obtenir de l'aide, envoyez le sujet  help  �   carrefourblinux-request@xxxxxxxxxxxxxxxxxxx
   Archives:
   http://listengine.tuxfamily.org/lists.tuxfamily.org/carrefourblinux


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/