Les niveaux d'exécution
Le fonctionnement d'un système Linux est régi par des niveaux d'exécution. Un système Linux est toujours dans un niveau d'exécution quelque soit son activité.
La gestion des niveaux d'exécution consiste à déterminer quel doit être le comportement du système quand il entre dans un niveau donné.
Qu'est-ce qu'un niveau d'exécution ?
C'est un niveau fonctionnel dans lequel la liste des services à arrêter ou démarrer à été déterminé.
Le niveau 0
Le système est arrêté. Ce niveau doit être configuré, il faut gérer ce qui se passe quand le système entre au niveau 0.
Le niveau 1 ou single
Il est réservé aux opérations de maintenance et ne permet que la connexion du compte root. La plupart des services sont arrêtés, le système a une activité minimum autorisant les opérations de maintenance.
Sur la plupart des systèmes :
Le niveau 2
Non utilisé.
Sur les systèmes Debian et dérivés, ce niveau est le niveau fonctionnel par défaut.
Le niveau 3
Il est fonctionnel, tous les services sont demarrés mais l'interface graphique n'est pas disponible.
Le niveau 4
Non utilisé.
Le niveau 5
Il est fonctionnel, tous les services sont disponibles et l'interface graphique également.
Il n'est pas utilisé sur les systèmes Debian et dérivés.
Le niveau 6
Temporaire par définition, le niveau 6 est celui d'un système en train de redémarrer. La configuration consiste à déterminer quels services doivent être arrêtés dans cette phase de fonctionnement. Après le redémarrage, un niveau d'exécution s'appliquera, en général le niveau par défaut, et les services associés à ce niveau seront demarrés.
Configuration du processus init
Les niveaux d'exécution déterminent une liste de services à démarrer ou arrêter. Comment le système va prendre connaissance de son niveau d'exécution et des services referencés.
Le premier processus démarré sur le système
En premier c'est le processus init. Il porte un PPID inhabituel (0) et il est le père de nombreux autres processus.
C'est le premier service lancé au chargement du noyau, il a un rôle privilégié, son comportement est régi par le fichier de configuration : /etc/inittab.
Le fichier inittab
Selon les distributions, ce fichier revêt des contenus très différents mais sa structure est toujours là même.
Structure du fichier /etc/inittab ( 4 champs)
identifiant : niveau : mode_action : commande
identifiant : chaîne alphanumérique d'un ou deux caractères. Identifie la ligne. Pas d'autres contraintes que d'éviter d'avoir deux lignes avec le même identifiant.
niveau : le ou les niveaux d'exécution (en chiffres) pour laquelle la ligne est pertinente.
mode_action : à choisir parmi quelques mots-clés, définit la façon dont la commande du quatrième champ sera exécutée.
commande : la commande à exécuter aux niveaux définis dans le deuxième champ selon le mode d'action du troisième champ.
Modes d'actions courants
initdefault : défini le niveau d'exécution du système par défaut, le quatrième champ est vide.
sysinit : sert à exécuter des scripts à l'initialisation du système, indépendamment du niveau d'exécution. Il n'admet pas de valeur pour le deuxième champ.
wait : exécute la commande du quatrième champ (souvent un script) et attend la fin de cette exécution pour passer aux lignes suivantes du fichier inittab.
respawn : exécute la commande du quatrième champ, et laissé tourner le processus à l'arrière plan. Passe ensuite aux lignes suivantes du fichier inittab. Si le processus appelé s'arrête, init le relancera systématiquement.