Le système d'initialisation System V, généralement appelé SysV init ou sysvinit, est une conception traditionnelle de PID 1 et de démarrage des services. Il reste important sur les anciens systèmes et par l'intermédiaire de scripts de compatibilité, mais la présence de fichiers de style SysV ne prouve pas que sysvinit est le PID 1 en cours d'exécution.
Init · Leçon 1
Présentation de System V
Découvrez comment le système d'initialisation traditionnel System V emploie des niveaux d'exécution et des liens ordonnés vers les scripts de services.
Identifier le système d'initialisation actif
Examinez le PID 1 réel :
$ ps -p 1 -o pid,comm,args=
$ readlink /proc/1/exe
Un fichier /etc/inittab ou un répertoire /etc/init.d/ ne constitue qu'un indice secondaire. systemd et d'autres systèmes d'initialisation peuvent conserver ces fichiers pour la compatibilité, et les conteneurs peuvent présenter un espace de noms de PID différent de celui de l'hôte.
Quelle preuve démontre le mieux que sysvinit est actif ?
Niveaux d'exécution
Un niveau d'exécution est un mode de fonctionnement numérique nommé. Les configurations SysV emploient traditionnellement les niveaux 0 à 6 ainsi que des niveaux spéciaux, mais leur signification relève des règles de la distribution, pas d'une loi universelle. Parmi les conventions courantes :
0: transition vers l'arrêt ou la mise hors tension ;1ouS: mode mono-utilisateur ou de secours ;2à5: modes multi-utilisateurs définis par la distribution ;6: transition vers le redémarrage.
Les systèmes de la famille Debian traitent historiquement les niveaux 2 à 5 de façon semblable, tandis que les conventions de la famille Red Hat distinguent les modes texte et graphique. Examinez /etc/inittab, la documentation d'init et les répertoires de niveaux sur la machine réelle.
Quel niveau demande conventionnellement l'arrêt ou la mise hors tension sur de nombreux systèmes SysV ?
Scripts init et liens des niveaux d'exécution
Les scripts de services se trouvent généralement sous /etc/init.d/. Des répertoires comme /etc/rc2.d/ ou /etc/rc.d/rc2.d/ contiennent des liens dont le nom encode l'action de transition et l'ordre :
- les liens
SNNnomdemandent une action de démarrage ; - les liens
KNNnomdemandent une action d'arrêt ; NNdétermine l'ordre lexical des liens pour cette transition.
L'algorithme et les répertoires exacts varient. Les dépendances peuvent aussi apparaître dans les en-têtes des scripts et être traitées par les outils de la distribution ; certaines implémentations parallélisent le travail. SysV ne garantit donc pas que chaque service démarre strictement l'un après l'autre.
Que demande conventionnellement un lien S20networking lors de l'entrée dans un niveau d'exécution ?
Passer d'un niveau d'exécution à un autre
Lorsqu'init change de niveau, le mécanisme rc de la distribution arrête les services devenus inutiles et lance ceux qu'exige le nouveau mode. Les scripts doivent être suffisamment idempotents pour accepter des opérations répétées d'état ou de transition et renvoyer des états significatifs.
Demander le niveau 0 ou 6 constitue une action destructrice de disponibilité à l'échelle du système. Employez l'interface d'arrêt du système, prévenez les utilisateurs, préservez le travail actif et vérifiez l'accès à une console distante au lieu de déclencher négligemment une transition init brute.
Que demande conventionnellement le niveau 6 ?
Limites de la compatibilité
Sur un hôte systemd, les scripts SysV peuvent être enveloppés dans des unités générées, mais les dépendances, délais, journaux et états de systemd continuent de s'appliquer. Exécuter directement un ancien script peut contourner le suivi du gestionnaire de services. Identifiez le gestionnaire actif et employez si possible son interface native.
Pourquoi faut-il normalement appeler un script de style SysV au moyen du gestionnaire de services sur un hôte systemd ?
Leçon terminée
Vous avez terminé Présentation de System V
Vous savez maintenant interpréter une organisation SysV traditionnelle sans supposer qu'elle est active.
Identifier le PID 1 réel avant de choisir les commandes d'initialisation.
Considérer la signification des niveaux comme des conventions définies par la distribution.
Lire
S,Ket l'ordre numérique dans les liens de niveaux.Employer des procédures contrôlées pour arrêter avec les niveaux 0 et 6.
Respecter le gestionnaire actif en présence de scripts de compatibilité.
Conservez votre progression
Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.
Créer un compte gratuit