Un niveau d'exécution est un mode de fonctionnement des systèmes d'exploitation qui implémente l'initialisation de type Unix System V. Par convention, il existe sept niveaux d'exécution, numérotés de zéro à six. La lettre « S » est parfois utilisée comme synonyme de l'un de ces niveaux. Au démarrage, un seul niveau d'exécution est exécuté ; les niveaux d'exécution ne sont pas exécutés successivement (c'est-à-dire que seuls les niveaux 2, 3 ou 4 sont exécutés, et non les suivants ou dans un autre ordre).
Un niveau d'exécution définit l'état de la machine après le démarrage. Différents niveaux d'exécution sont généralement attribués (sans ordre particulier) aux états suivants : mode mono-utilisateur , mode multi-utilisateur sans services réseau, mode multi-utilisateur avec services réseau, arrêt du système et redémarrage du système . La configuration exacte de ces niveaux varie selon les systèmes d'exploitation et les distributions Linux . Par exemple, le niveau d'exécution 4 peut correspondre à une interface graphique multi-utilisateur sans serveur sur une distribution, et à rien sur une autre. Les niveaux d'exécution suivent généralement les schémas décrits dans cet article ; cependant, certaines distributions utilisent des configurations spécifiques.
En règle générale, lorsqu'un ordinateur passe au niveau d'exécution zéro, il s'éteint, et lorsqu'il passe au niveau d'exécution six, il redémarre. Les niveaux d'exécution intermédiaires (1 à 5) diffèrent par les lecteurs montés et les services réseau activés. Les niveaux d'exécution par défaut sont généralement 3, 4 ou 5. Les niveaux d'exécution inférieurs sont utiles pour la maintenance ou les réparations d'urgence, car ils n'offrent généralement aucun service réseau. Les modalités de configuration des niveaux d'exécution varient considérablement d'un système d'exploitation à l'autre, et même d'un administrateur système à l'autre.
Dans diverses distributions Linux, le script traditionnel /etc/rc utilisé dans Unix version 7 a d'abord été remplacé par les niveaux d'exécution, puis par les états systemd sur la plupart des distributions majeures.
niveaux d'exécution standard
Linux
Bien que systemd le soit, Utilisés par défaut dans la plupart des distributions Linux majeures , les niveaux d'exécution peuvent néanmoins être utilisés grâce au projet sysvinit . Après le démarrage du noyau Linux , le programme /sbin/init lit le fichier /etc/inittab pour déterminer le comportement de chaque niveau d'exécution. À moins que l'utilisateur ne spécifie une autre valeur comme paramètre de démarrage du noyau , le système tentera de démarrer au niveau d'exécution par défaut.
Spécification de base standard Linux
Les systèmes conformes à la Linux Standard Base (LSB) ne sont pas tenus de fournir les niveaux d'exécution exacts indiqués ici ni de leur donner les significations décrites ici, et peuvent faire correspondre n'importe quel niveau décrit ici à un niveau différent qui fournit la fonctionnalité équivalente.
Slackware Linux
Slackware Linux utilise le niveau d'exécution 1 pour la maintenance, comme sur d'autres distributions Linux ; les niveaux d'exécution 2, 3 et 5 sont configurés de manière identique pour une console (avec tous les services actifs) ; et le niveau d'exécution 4 ajoute le système X Window.
Gentoo Linux
Debian GNU/Linux
Unix
Système V versions 3 et 4
Solaris
À partir de Solaris 10, SMF ( Service Management Facility ) est utilisé à la place des niveaux d'exécution SVR4. Ces derniers sont émulés afin de préserver la compatibilité avec les scripts de démarrage existants.
HP-UX
AIX
AIX ne suit pas la spécification des niveaux d'exécution de System V R4 (SVR4). Les niveaux d'exécution disponibles vont de 0 à 9, ainsi que de a à c (ou h). Les niveaux 0 et 1 sont réservés, le niveau 2 correspond au mode multi-utilisateur normal par défaut et les niveaux 3 à 9 peuvent être définis librement par l'administrateur. Les niveaux d'exécution de a à c (ou h) permettent l'exécution de processus dans ce niveau sans interrompre les processus lancés dans un autre.
Les niveaux d'exécution S, s, M et m ne sont pas de véritables niveaux d'exécution ; ils servent à indiquer à la commande init de passer en mode maintenance. Lorsque le système passe en mode maintenance depuis un autre niveau d'exécution, seule la console système est utilisée comme terminal.