Niveaux d'exécution init SysV

Sur un système qui utilise les niveaux d'exécution SysV init, tels que Centos 5 , lorsque le operating system démarre, passe-t-il directement au niveau d'exécution défini dans /etc/inittab ?

Si je change mon niveau d'exécution à l'aide de la command init , les scripts kill de mon niveau d'exécution actuel s'exécutent et les scripts de démarrage du nouveau niveau d'exécution s'exécutent-ils?

Par exemple, si j'étais au niveau 3 d'exécution et entré init 1 , les scripts kill dans /etc/rc.d/rc3.d seraient-ils exécutés et, lors de l'input dans le niveau 1, les scripts de démarrage dans /etc/rc.d/rc1.d être exécuté?

Oui, SysVinit va directement au niveau d'exécution choisi au démarrage sans regarder les scripts dans les autres niveaux. Vous pouvez afficher l'historique du runlevel l'aide de la command runlevel . Au premier démarrage, il affichera le niveau d'exécution "précédent" comme 'N'. Après un changement de niveau d'exécution, il affichera le niveau d'exécution précédent et actuel.

Lors du changement de niveau d'exécution, il examine d'abord la différence entre eux. Tous les services répertoriés dans le niveau actuel mais pas dans le nouveau sont d'abord supprimés à l'aide des scripts kill, alors ceux qui sont répertoriés dans le nouveau niveau mais pas dans l'ancien sont exécutés. Les services qui existent dans les deux niveaux d'exécution ne sont pas touchés.

Par exemple, passer du niveau d'exécution 3 à 5 entraînera généralement le démarrage de quelques éléments (comme un gestionnaire d'affichage), mais rien ne sera tué. Passer de 5 à 1 entraînera la mort de plusieurs choses, puis peut-être 1 (comme un seul gestionnaire de console d'interface user) exécuté.