Généralement, deux événements se produisent quand vous changez de niveau d'exécution. Tout d'abord, les scripts d'arrêt du niveau d'exécution actuel sont lancés, ce qui ferme certains programmes essentiels pour le niveau d'exécution actuel. Ensuite, les scripts de démarrage du nouveau niveau d'exécution sont démarrés. Dans la plupart des cas, un certain nombre de programmes sont démarrés ici. Par exemple, voici ce qui se produit en passant du niveau d'exécution 3 au niveau 5.
L'administrateur (root)
ordonne à init de passer à un niveau d'exécution différent en saisissant
init 5.
init consulte son fichier de configuration
(/etc/inittab) et décide qu'il devrait démarrer
/etc/init.d/rc avec le nouveau niveau d'exécution
comme paramètre.
À présent, rc appelle tous les scripts d'arrêt
du niveau d'exécution actuel, mais seulement ceux pour lesquels il n'y a
pas de script de démarrage dans le nouveau niveau d'exécution. Dans cet
exemple, ce sont tous les scripts qui résident dans
/etc/init.d/rc3.d (l'ancien niveau d'exécution était
3) et commencent par un K. Le nombre qui suit
K spécifie l'ordre dans lequel commencer, car il y a
certaines relations de dépendance à prendre en considération.
Les derniers à démarrer sont les scripts de démarrage du nouveau
niveau d'exécution. Ceux-ci sont, dans cet exemple, dans
/etc/init.d/rc5.d et commencent par un
S. La même procédure concernant l'ordre dans lequel ils
sont démarrés s'applique ici.
Si vous passez au même niveau d'exécution que le niveau d'exécution
actuel, init ne vérifie dans /etc/inittab que les
changements et démarre les étapes appropriées, par exemple, pour démarrer un
getty sur une autre interface.