Un niveau d'exécution est un état d'init et du système dans son ensemble qui définit quels services système s'exécutent. Les niveaux d'exécution sont identifiés par des nombres (cf. le tableau 6.1). Il n'y a pas de consensus sur la façon d'utiliser les niveaux utilisateur (2 à 5). Certains administrateurs utilisent les niveaux d'exécution pour définir les sous-systèmes qui fonctionnent, par exemple si X s'exécute, ou si le réseau est opérationnel, etc. D'autres ont tous les sous-systèmes qui fonctionnent en permanence ou les lancent et les arrêtent individuellement sans changer de niveau d'exécution puisque ces niveaux sont trop grossiers pour contrôler leurs systèmes. On doit décider soi-même, mais il est plus facile de suivre la voie préconisée par sa distribution Linux.
Les niveaux d'exécution sont configurés dans /etc/inittab par des
lignes comme celle-ci :
Le premier champ est une étiquette arbitraire, le second signifie que cette
ligne s'applique au niveau d'exécution 2. Le troisième champ indique
qu'init lancera la commande du quatrième champ une seule fois, lorsque
l'on entre dans le niveau d'exécution, et qu'init doit attendre ce
niveau pour le faire. La commande /etc/init.d/rc lance toutes les
commandes nécessaires pour lancer et stopper les services pour entrer au
niveau 2.
La commande du quatrième champ fait tout le boulot de mise en place d'un niveau d'exécution. Elle lance les services qui ne tournent pas encore, et arrête ceux qui ne devraient pas tourner à ce nouveau niveau. Ce qu'est exactement cette commande, et la façon dont les niveaux d'exécution sont configurés, dépend de la distribution Linux.
Quand init démarre, il cherche une ligne de /etc/inittab qui
donne le niveau d'exécution par défaut.
On peut demander à init d'aller au démarrage à un autre niveau
d'exécution que celui par défaut en fournissant l'argument single
ou emergency au noyau6.4. Ceci permet de choisir le mode <<
single user >> (niveau 1) qui est décrit dans la
section 6.5.
Pendant que le système tourne, la commande telinit peut changer le niveau d'exécution. Lorsque ce niveau est modifié, init lance la commande adéquate à partir de ce qu'il trouve dans /etc/inittab.