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

Contenu

bouton d'allumage

Les niveaux d'exécution Linux font la distinction entre les états de fonctionnement du système. Changer le 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 avec un ensemble spécifique de services.

Niveaux d'exécution standard

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

  • Niveau d'exécution 0 – Sans activité, équivalent à éteint. Le système est prêt pour une perte de puissance physique.
  • Niveau d'exécution 1 – Exécution en mode mono-utilisateur (porter secours).
  • Niveau d'exécution 2 – Exécution en mode multi-utilisateur sans réseau ni graphique.
  • Niveau d'exécution 3 – Mode multi-utilisateurs avec l'ajout de la prise en charge du réseau.
  • Niveau d'exécution 4 – A gauche pour les utilisateurs / les distributions le définissent.
  • Niveau d'exécution 5 – Mode multi-utilisateurs 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 avec lequel vous êtes probablement le plus familier. La plus large gamme de services est disponible, comprenant un serveur d'affichage et une pile réseau complète. Si vous êtes sur un serveur headless et sans pile d'écran, peut être au niveau de l'exécution 3.

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

Niveaux d'exécution 2, 3 et 4 peut varier selon la distribution. Certaines distributions créeront une distinction claire entre chaque niveau d'exécution; chez les autres, les trois peuvent avoir le même effet. Généralement, vous pouvez vous attendre à ce que l'un de ces trois vous fournisse un shell de texte à utilisateur unique avec les réseaux disponibles.

Votre système ne peut être que dans un 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 d'initier explicitement un changement. En général, les seules transitions au niveau de l'exécution qui se produisent proviennent des niveaux 1-5 au niveau 0 O 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 faible niveau d'exécution signifie généralement que seul un sous-ensemble des services 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 aux 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 expédiées avec différents gestionnaires de services. Le gestionnaire de services d'origine, init, définir vos services au sein /etc/init.d. Les scripts créés ici sont symboliquement liés à /etc/rc où ils sont triés par niveau d'exécution:

  • /etc/rc0.d – Les scripts placés ici sont exécutés par 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éer ou modifier un script dans /etc/init.d:

Mme:345:réapparaître:/usr/bin/service_executable

Ensuite, utilisation chkconfig pour activer le service:

sudo chkconfig service_executable sur

Les 345:respawn sur la ligne de tiret indique init courir service_executable lorsque le système entre dans les niveaux d'exécution 3, 4 O 5.

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

La plupart des distributions Linux, y compris Debian, Ubuntu, CentOS, Arche et chapeau rouge, maintenant ils utilisent systemd. Cela ne fait pas directement référence aux niveaux d'exécution; à sa place, ils se transforment en “objectifs” qui sont identifiés par leur nom. Alors que Linux ne peut être qu'à un 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 prévu à des fins de compatibilité.

L'unique default target définit sur quoi le système va démarrer. Les default l'objectif est généralement lié à multi-user objectif: équivalent à un niveau d'exécution de 2 le supérieur.
Les services de chaque cible sont stockés dans un répertoire. “vœux”. Celui-ci contiendra .service enregistrements. Il s'agit également de liens symboliques pointant vers des définitions de services 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 “objectifs”. Au démarrage de Linux, systemd sélectionner la cible indiquée par le niveau d'exécution. Ensuite, les services souhaités par cet objectif seront chargés. systemd prend en charge les dépendances de service, afin que les services individuels puissent être obligés d'attendre d'autres services avant de commencer.

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. Les 5 indique que vous êtes dans une session graphique multi-utilisateurs avec des réseaux disponibles. 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 éteint.

Dans certains systèmes, vous pourrez peut-être obtenir les niveaux d'exécution actuels et précédents en utilisant le $RUNLEVEL et $PREVLEVEL Variables d'environnement. Si ces variables sont définies, la runlevel la commande ne fait que sortir ses valeurs.

Vous pouvez également inspecter votre niveau d'exécution actuel en utilisant le who commander. Courir who -r pour voir le numéro du niveau d'exécution et l'heure à laquelle le niveau d'exécution a été saisi.

Basculer entre les niveaux d'exécution

Vous pouvez basculer entre les niveaux d'exécution en utilisant le telinit commander. Cela vous permet d'activer manuellement différents modes, comme le mode utilisateur unique ou le mode de secours.

Pressé telinit 0 va éteindre votre machine; telinit 6 doit lancer un redémarrage. À l'aide de telinit avec des 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.

Lorsque vous utilisez systemd, Les systemctl isolate La commande permet d'activer un “objectif” différent. Tous les services en cours d'exécution seront arrêtés; les services associés à la nouvelle destination puis démarrer.

Voici comment activer le multi-user objectif:

sudo systemctl isoler 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 lui 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.

De faibles niveaux d'exécution sont couramment utilisés pour les modes de récupération et le fonctionnement en mode 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.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.