Agence web » Actualités du digital » Comment les niveaux d’exécution Linux affectent les services en cours d’exécution –

Comment les niveaux d’exécution Linux affectent les services en cours d’exécution –

Shutterstock / Allexxandar

Les niveaux d’exécution Linux font la distinction entre les états de fonctionnement du système. Le changement de niveau d’exécution changera les services en cours d’exécution. Vous pouvez personnaliser les niveaux d’exécution afin que chaque niveau commence par un ensemble spécifique de services.

Niveaux d’exécution standard

Le noyau Linux définit sept niveaux d’exécution standard. Les distributions de système d’exploitation individuelles peuvent personnaliser ces niveaux d’exécution ou en ajouter d’autres. Les utilisateurs sont également libres de créer et de modifier les niveaux d’exécution.

  • Niveau d’exécution 0 – Aucune activité, équivalente à un arrêt. Le système est prêt pour une perte de puissance physique.
  • Niveau d’exécution 1 – Fonctionnement en mode mono-utilisateur (secours).
  • Niveau d’exécution 2 – Fonctionnement en mode multi-utilisateurs sans réseau ni graphiques.
  • Niveau d’exécution 3 – Mode multi-utilisateur avec l’ajout de la prise en charge de la mise en réseau.
  • Niveau d’exécution 4 – Laissé aux utilisateurs / distributions à définir.
  • Niveau d’exécution 5 – Mode utilisateur multiple avec une interface utilisateur graphique.
  • Niveau d’exécution 6 – Mode de redémarrage du système.

La plupart des systèmes Linux démarreront au niveau d’exécution 5. C’est le niveau d’exécution que vous connaissez probablement le plus. La plus large gamme de services est disponible, y compris un serveur d’affichage et une pile réseau complète. Si vous êtes sur un serveur headless sans pile d’affichage, vous êtes peut-être au niveau d’exécution 3.

Certains systèmes mono-utilisateur démarreront au niveau d’exécution 1 .. Vous rencontrerez également ce niveau d’exécution si vous utilisez un mode de récupération pour sauver votre système. Cela vous permet d’obtenir un accès au shell sans vous connecter en tant qu’utilisateur régulier.

Les niveaux d’exécution 2, 3 et 4 peuvent varier d’une distribution à l’autre. Certaines distributions créeront une distinction claire entre chaque niveau d’exécution; dans d’autres, les trois peuvent avoir le même effet. En règle générale, vous pouvez vous attendre à ce que l’un de ces trois éléments vous offre un shell de texte mono-utilisateur avec mise en réseau disponible.

Votre système ne peut se trouver qu’à un seul niveau d’exécution à la fois. Un seul niveau d’exécution sera sélectionné après le démarrage. Vous ne passerez pas aux niveaux d’exécution à moins que vous n’initialisiez explicitement une modification. Habituellement, les seules transitions de niveau d’exécution qui se produisent sont des niveaux 1 à 5 vers le niveau 0 ou 6, lorsque votre système s’arrête ou redémarre.

Des niveaux d’exécution plus élevés indiquent des niveaux croissants de fonctionnalités disponibles. Cette convention est suivie par toutes les distributions. Un niveau d’exécution bas signifie généralement que seul un sous-ensemble des services du système est en cours d’exécution.

Niveaux d’exécution et services de démarrage

Les services de démarrage sont couplés à des niveaux d’exécution. Linux ajoute traditionnellement des services de démarrage aux niveaux d’exécution. Lorsque votre système entre dans un niveau d’exécution, tous les services associés à ce niveau seront démarrés.

La manière dont les services sont réellement gérés dépend du gestionnaire de services que vous utilisez. Les distributions individuelles sont livrées avec différents gestionnaires de services. Le responsable du service d’origine, init, définit ses services au sein de /etc/init.d. Les scripts créés ici sont liés par un lien symbolique /etc/rc où ils sont triés par niveau d’exécution:

  • /etc/rc0.d – Les scripts placés ici sont exécutés au niveau d’exécution 0…
  • /etc/rc1.d – Scripts pour le niveau d’exécution 1…
  • /etc/rc2.d – …etc.

Pour ajouter de nouveaux services de démarrage, créez ou modifiez un script dans /etc/init.d:

ms:345:respawn:/usr/bin/service_executable

Ensuite, utilisez chkconfig pour activer le service:

sudo chkconfig service_executable on

le 345:respawn dans la ligne de script indique init courir service_executable lorsque le système entre aux niveaux d’exécution 3, 4 ou 5.

De nombreuses distributions plus récentes ont remplacé init avec des alternatives plus modernes. Ceux-ci peuvent fournir une abstraction de plus haut niveau sur les niveaux d’exécution et le système d’initialisation.

La majorité des distributions Linux, y compris Debian, Ubuntu, CentOS, Arch et Red Hat, utilisent désormais systemd. Cela ne fait pas directement référence aux niveaux d’exécution; au lieu de cela, ils sont convertis en «cibles» qui sont identifiées par leur nom. Alors que Linux ne peut être qu’à un seul niveau d’exécution à la fois, systemd prend en charge plusieurs cibles actives simultanément. Le mappage entre les niveaux d’exécution et les cibles n’est qu’approximatif; il est fourni à des fins de compatibilité.

Le spécial default target définit dans quoi le système démarrera. le default la cible est généralement liée à la multi-user target – équivalent à un niveau d’exécution de 2 ou plus.
Les services de chaque cible sont stockés dans un répertoire «souhaite». Cela contiendra .service des dossiers. Ce sont également des liens symboliques qui renvoient aux définitions de service dans /usr/lib/systemd/system.

ls -l /etc/systemd/system/multi-user.target.wants/*.service

Cela permet aux définitions de service d’être créées une seule fois et partagées avec plusieurs «cibles». Lorsque Linux démarre, systemd sélectionnera la cible indiquée par le niveau d’exécution. Les services voulus par cette cible seront alors chargés. systemd prend en charge les dépendances de service, de sorte que les services individuels peuvent être amenés à attendre d’autres services avant de démarrer.

Inspection du niveau d’exécution de votre système

Vous pouvez connaître le niveau d’exécution de votre système en utilisant le runlevel commander. Cela imprimera deux caractères sur le terminal. Ils montrent les niveaux d’exécution précédents et actuels de votre système.

N 5 est une sortie typique pour un système Linux de bureau. le 5 indique que vous êtes dans une session graphique multi-utilisateur avec mise en réseau disponible. N signifie que le niveau d’exécution précédent n’a pas pu être déterminé, généralement parce que le système était arrêté.

Sur certains systèmes, vous pourrez peut-être obtenir les niveaux d’exécution actuels et précédents à l’aide de $RUNLEVEL et $PREVLEVEL Variables d’environnement. Si ces variables sont définies, le runlevel La commande émet simplement leurs valeurs.

Vous pouvez également inspecter votre niveau d’exécution actuel en utilisant le who commander. Cours who -r pour voir le numéro de niveau d’exécution et l’heure à laquelle le niveau d’exécution a été entré.

Basculer entre les niveaux d’exécution

Vous pouvez basculer entre les niveaux d’exécution à l’aide de telinit commander. Cela vous permet de déclencher manuellement différents modes, tels que le mode mono-utilisateur ou le mode de secours.

En cours telinit 0 va arrêter votre machine; telinit 6 devrait lancer un redémarrage. Utilisant telinit avec les niveaux d’exécution 1 à 5 activera le mode de fonctionnement correspondant. Si vous êtes actuellement en mode texte uniquement, telinit 5 essaiera d’activer le serveur d’affichage et passera en mode graphique.

Lors de l’utilisation systemd, les systemctl isolate La commande vous permet d’activer une «cible» différente. Tous les services en cours d’exécution seront arrêtés; les services associés à la nouvelle cible puis démarrent.

Voici comment activer le multi-user cible:

sudo systemctl isolate multi-user.target

Si vous souhaitez apporter une modification permanente au niveau d’exécution, utilisez le systemctl set-default commander:

sudo systemctl set-default multi-user.target

Maintenant le multi-user La cible sera sélectionnée à chaque redémarrage de votre système.

Résumé

Les niveaux d’exécution Linux décrivent différents états au sein du système d’exploitation. Chaque niveau d’exécution superpose des fonctionnalités supplémentaires sous la forme de services d’exécution supplémentaires.

Les bas niveaux d’exécution sont couramment utilisés pour les modes de récupération et les opérations de texte uniquement. Un système Linux de bureau avec un environnement graphique sera généralement au niveau de l’exécution 5. Vous devriez consulter la documentation de votre distribution pour une description détaillée des niveaux d’exécution disponibles, car les implémentations peuvent varier.

★★★★★