1. Thème :
101 Architecture système
Objectif :
101.3 Changement de niveaux d’exécution /
des cibles de démarrage de systemd et arrêt
ou redémarrage du système
2. • Les systèmes d'exploitation Unix se distinguent par l'utilisation de
processus distincts, appelés démons ou services, pour gérer
différentes fonctions du système, y compris les services réseau, les
bases de données, et la configuration.
• Le choix des démons à activer dépend de la configuration du
système, et les distributions Linux offrent des outils de gestion des
services pour les contrôler en cours d'exécution.
• Historiquement, les gestionnaires de services basés sur SysVinit
étaient courants, mais de nos jours, les gestionnaires basés sur
systemd sont plus répandus dans la plupart des distributions Linux,
et le gestionnaire de services a toujours le PID 1 au démarrage.
3. SysVinit
Un gestionnaire de services basé sur la norme SysVinit fournira un
ensemble prédéfini d’états du système, appelés runlevels (niveaux
d’exécution), et les fichiers de scripts du service correspondants à
exécuter. Les runlevels sont numérotés de 0 à 6, et ils sont
généralement affectés aux objectifs suivants :
• Niveau 0: Arrêt du système.
• Niveau 1, s ou single: Mode mono-utilisateur, sans réseau et autres
fonctionnalités non-essentielles (pour la maintenance).
• Niveaux 2, 3 ou 4: Mode multi-utilisateur. Les utilisateurs peuvent
se connecter par la console ou par le réseau. Les niveaux 2 et 4 ne
sont pas souvent utilisés.
• Niveau 5: Mode multi-utilisateur. Il est équivalent au niveau 3, avec
la connexion en mode graphique.
• Niveau 6: Redémarrage du système.
4. SysVinit
• Lors de l’initialisation du système, le
programme init identifie le niveau d’exécution
requis, défini par un paramètre du noyau ou dans
le fichier /etc/inittab, et charge les scripts
correspondants qui y sont référencés pour le
niveau d’exécution donné.
• La syntaxe du fichier /etc/inittab utilise ce format
:
id:niveaux:action:processus
5. SysVinit
id: nom générique comportant jusqu’à quatre
caractères, utilisé pour identifier l’entrée.
niveaux: une liste de numéros de niveaux
d’exécution pour lesquels une action spécifiée
doit être exécutée.
action: définit comment init va exécuter le
processus indiqué par le terme processus.
processus: la commande à exécuter.
6. SysVinit
• Chaque niveau d’exécution peut être associé à
une série de fichiers de services, généralement
des scripts dans le répertoire /etc/init.d/.
• les fichiers dans les répertoires /etc/rcN.d sont
des liens symboliques vers des scripts qui se
trouvent dans le répertoire /etc/init.d/.
• Ces scripts prennent comme argument au moins
les commandes start et stop, respectivement
pour démarrer (S) et arrêter (K) le service.