Préparation LPI - Exam 101 : Gestion des niveaux d'exécution
101.3 - Gestion des niveaux d'exécution Objectif 1 - Définir le niveau d'exécution par défaut Le processus init est le tout premier processus lancé par le noyau au démarrage (il porte le PID numéro 1). C'est lui qui gère le démarrage de tous les autres processus, les sessions de connexion, et l'arrêt du système. Le démarrage et l'arrêt des processus dépendent du niveau d'exécution (runlevel).
D'après le document Préparation LPI - Exam 101 : Gestion des niveaux d'exécution
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Linux System Administration · PDF · 27 pages · 2009
Afficher l'aperçu du document
101.3 - Gestion des niveaux d'exécution
Objectif 1 - Définir le niveau d'exécution par défaut
Le processus init est le tout premier processus lancé par le noyau au démarrage (il porte le PID numéro 1). C'est lui qui gère le démarrage de tous les autres processus, les sessions de connexion, et l'arrêt du système.
Le démarrage et l'arrêt des processus dépendent du niveau d'exécution (runlevel). Le document définit 7 niveaux d'exécution standards :
- 0 : arrêt du système
- 1 : mode mono-utilisateur
- 2 : mode multi-utilisateur sans support réseau
- 3 : mode multi-utilisateur (pas de mode graphique X11)
- 4 : idem niveau 3 modifiable par l'utilisateur
- 5 : mode multi-utilisateur avec démarrage de la couche graphique X11
- 6 : mode reboot (idem niveau 0 mais redémarrage à chaud)
Le niveau d'exécution par défaut de la machine est défini dans le fichier de configuration /etc/inittab. Il est déterminé par la directive initdefault.
Par exemple, pour un démarrage par défaut en mode graphique (niveau 5), le fichier contient la ligne :
id:5:initdefault:
Objectif 2 - Changer dynamiquement les niveaux d'exécution
Pour basculer d'un niveau d'exécution à un autre lorsque le système est déjà en marche, il faut utiliser la commande telinit (ou init) suivie du numéro du niveau désiré. Par exemple, pour passer en mode texte multi-utilisateur :
telinit 3
La commande telinit possède des options spécifiques :
-qou-Q: forcetelinità relire le contenu du fichier/etc/inittab.-sou-S: force le passage en mode mono-utilisateur (single mode).
Pour vérifier le niveau d'exécution actuel et le niveau précédent, on utilise la commande runlevel (qui lit les informations dans /var/run/utmp). Si le niveau n'a pas été modifié depuis le démarrage de la machine, le niveau précédent affiché sera N.
Passage en mode mono-utilisateur au démarrage : Si la machine n'est pas encore démarrée ou si le mot de passe root est perdu, le niveau 1 (accès root direct sans mot de passe, console textuelle unique, pas de réseau) peut être forcé depuis le chargeur de démarrage :
- Avec GRUB : Taper
e(edit) sur l'entrée du noyau, puisesur la ligne commençant parkernel. Ajouter un espace et le motsingleà la fin de la ligne. Valider avecEntrée, puis appuyer surbpour démarrer. - Avec LILO : À l'invite
boot :, saisirlinux single(en remplaçant "linux" par l'étiquette correcte si nécessaire).
Objectif 3 - Arrêt et redémarrage à la ligne de commande
Les opérations d'arrêt et de redémarrage sont principalement gérées par les commandes shutdown et halt.
La commande shutdown offre le plus de flexibilité :
shutdown [options] [délai] [message]
Les principales options de comportement sont :
-h: arrêt (halt ou poweroff).-r: redémarrage (reboot).-P: shutdown puis arrêt de l'alimentation électrique.-H: shutdown sans arrêt de l'alimentation.now: exécution immédiate.-c: annule une procédure de shutdown planifiée (si elle n'a pas encore démarré).-f: empêche la vérification des systèmes de fichiers (fsck) au redémarrage.-F: force la vérification des systèmes de fichiers au redémarrage.-a: vérifie que l'utilisateur figure dans/etc/shutdown.allow.
La commande halt demande un arrêt immédiat. Les utilitaires poweroff et reboot sont généralement de simples liens symboliques pointant vers le binaire /sbin/halt. Si le système se trouve dans un niveau d'exécution autre que 0 ou 6, l'appel à halt invoquera automatiquement shutdown avec les options -h ou -r.
Objectif 4 - Avertissement des utilisateurs avant changements
Contrairement à halt, la commande shutdown permet d'avertir les utilisateurs connectés avant l'interruption du service.
Le délai peut être spécifié au format hh:mm (heure précise) ou +m (où m est le délai en minutes). On peut y joindre un message texte libre pour expliquer la raison de la maintenance. De plus, shutdown bloque automatiquement les nouvelles connexions en créant le fichier /etc/nologin.
Une option spécifique permet d'envoyer l'avertissement sans réellement procéder à l'arrêt :
-k: envoie le message d'avertissement aux utilisateurs, mais n'exécute pas réellement la commande d'arrêt.
Objectif 5 - Arrêt « propre » des processus et gestion des services
L'arrêt propre des processus et leur démarrage s'articulent autour de l'arborescence /etc/rc.d/.
Le programme de contrôle général est /etc/rc.d/rc. Lorsqu'un niveau d'exécution est demandé, rc parcourt le sous-répertoire correspondant à ce niveau (de /etc/rc.d/rc0.d à /etc/rc.d/rc6.d). Ces dossiers contiennent des liens symboliques pointant vers les scripts réels situés dans /etc/rc.d/init.d.
Le formalisme de ces liens garantit un démarrage et un arrêt séquentiels et propres :
- K (Kill) : Les liens commençant par un
Kindiquent les scripts lancés à la sortie du niveau d'exécution pour arrêter proprement les services. - S (Start) : Les liens commençant par un
Sindiquent les scripts lancés à l'entrée du niveau pour démarrer les services. - Numérotation : Les lettres sont suivies de deux chiffres (00 à 99) définissant l'ordre d'exécution (ex:
S10networksera exécuté avantS50yum).
Contrôle manuel des services
Pour interagir avec un service de manière ponctuelle, on utilise la commande service :
service nom_service option
Les options usuelles sont start (démarrer), stop (arrêter), restart ou reload (arrêter puis redémarrer), et status (vérifier l'état).
Automatisation avec chkconfig
L'utilitaire chkconfig gère la création et la suppression automatiques des liens symboliques S et K dans les répertoires rcX.d.
Pour qu'un service soit pris en charge, son script dans init.d doit inclure des commentaires spécifiques définissant les niveaux par défaut et les priorités de démarrage/arrêt :
#!/bin/bash
# chkconfig: 345 97 03
# description: Description de la fonction du démon
Les commandes de gestion sont les suivantes :
chkconfig --add nom_service: intègre un nouveau service à gérer.chkconfig --del nom_service: retire le service de la gestion par chkconfig.chkconfig --list nom_service: affiche l'état d'activation du service dans chaque niveau d'exécution (0 à 6).chkconfig --level 35 nom_service on: active automatiquement le service lors de l'entrée dans les niveaux 3 et 5.chkconfig nom_service off: désactive le service dans tous les niveaux.chkconfig nom_service reset: réinitialise la configuration du service selon les valeurs inscrites dans l'en-tête de son script d'initialisation.
Méthode
Pour réussir l'objectif 101.3 de la certification LPI, vous devez compartimenter vos connaissances entre l'action immédiate et la configuration persistante.
Ne confondez pas la commande service (qui modifie l'état actuel d'un démon sans survivre à un redémarrage) et chkconfig (qui ne modifie pas l'état immédiat mais configure le comportement pour les futurs changements de runlevel). Mémorisez parfaitement le rôle de chaque niveau d'exécution (0 à 6) tel que défini dans le cours, car les questions d'examen portent souvent sur la distinction entre le niveau 3 (réseau sans X11) et 5 (réseau avec X11), ou sur le comportement de transition imposé par le paramètre single dans le chargeur d'amorçage. Enfin, apprenez les options de la commande shutdown ; l'option -k (simulation/avertissement) est un piège classique des questionnaires à choix multiples.
Commentaires
Aucun commentaire pour le moment. Posez la première question.