Qu'est-ce qu'un niveau d'exécution ?

23 septembre

Un niveau d'exécution est un état de fonctionnement prédéfini d'un système UNIX ou Linux qui détermine les services et processus disponibles après le démarrage.

qu'est-ce qu'un niveau d'exécution

Qu'est-ce que le niveau d'exécution ?

Un niveau d'exécution est un concept dans UNIX et Linux systèmes d'exploitation Il définit un état spécifique de la machine en déterminant les processus, services et ressources système actifs. Il sert de cadre pour contrôler le démarrage et l'arrêt du système, permettant administrateurs Gérer l'environnement en fonction des besoins opérationnels. Chaque niveau d'exécution correspond à un mode particulier, comme la maintenance du système, le fonctionnement multi-utilisateur en mode texte ou la disponibilité complète de l'interface graphique.

Au démarrage, le système accède à un niveau d'exécution par défaut défini dans sa configuration, et le processus d'initialisation s'assure que l'ensemble de services approprié est démarré ou arrêté en fonction de ce niveau. En modifiant le niveau d'exécution, les administrateurs peuvent rapidement adapter le système à différentes tâches, comme le dépannage en mode mono-utilisateur, l'exécution sans réseau pour des raisons de sécurité ou l'activation de services réseau et graphiques complets pour une utilisation régulière. Ce mécanisme offre un moyen standardisé et efficace de gérer le comportement du système sans intervention manuelle pour chaque service.

Différents niveaux d'exécution Linux

Voici un tableau structuré des niveaux d'exécution Linux SysV traditionnels et de leurs objectifs :

Niveau d'exécutionDescriptionCas d'utilisation typique
0Arrêt (fermeture)Éteint le système en toute sécurité.
1Mode mono-utilisateurMode maintenance ou d'urgence avec Accès racine seulement, pas de réseautage.
2Mode multi-utilisateur sans mise en réseauFournit plusieurs connexions utilisateur mais désactive les services réseau (varie selon la distribution).
3Mode multi-utilisateur complet avec mise en réseauMode texte standard, non graphique, avec tous les services et réseaux activés.
4Indéfini / définissable par l'utilisateurRarement utilisé ; disponible pour une configuration personnalisée.
5Mode multi-utilisateur avec mise en réseau et interface graphiqueDémarre dans un environnement de bureau graphique avec mise en réseau complète.
6RedémarrezRedémarre le système en toute sécurité.

À quoi sert le niveau d'exécution ?

Les niveaux d'exécution sont utilisés pour contrôler l'état opérationnel d'un Linux ou un système UNIX en définissant les services, processus et ressources système actifs à tout moment. Ils permettent aux administrateurs de gérer le comportement du système au démarrage, à l'arrêt ou lors des transitions entre différents modes de fonctionnement.

Par exemple, un système peut être placé en mode mono-utilisateur pour le dépannage, basculé en mode multi-utilisateur pour un fonctionnement normal. server Opérations, ou démarré dans une interface graphique pour une utilisation sur ordinateur. En définissant ou en modifiant le niveau d'exécution, les administrateurs peuvent rapidement activer ou désactiver des groupes de services, préserver les ressources système, effectuer des tâches de maintenance ou s'assurer que la machine fonctionne dans la configuration la plus adaptée à son rôle. Cette approche structurée contribue à maintenir la cohérence, la sécurité et l'efficacité dans différents environnements.

Comment vérifier le niveau d'exécution ?

Vous pouvez vérifier le niveau d'exécution actuel sur un système Linux à l'aide de commandes qui indiquent l'état opérationnel du système. Sur les systèmes traditionnels sysvinit systèmes, la commande runlevel affiche les niveaux d'exécution précédents et actuels, tandis que la commande who -r affiche le niveau d'exécution actuel plus en détail.

Sur le moderne basé sur systemd distributions, qui remplacent les niveaux d'exécution par objectifs, la commande équivalente est systemctl get-default pour voir la cible par défaut, et systemctl isolate Pour passer à un autre. De plus, systemctl list-units --type=target fournit des informations sur les cibles actives, qui correspondent à des niveaux d'exécution tels que multi-user.target ou graphical.target.

Comment changer le niveau d’exécution sous Linux ?

comment changer le niveau d'exécution sous Linux

La modification du niveau d'exécution sous Linux dépend du fait que le système utilise l'ancien sysvinit cadre ou le moderne systemd système d'initialisation.

Systèmes basés sur SysVinit

Le niveau d'exécution peut être modifié temporairement avec la commande init ou telinit suivie du numéro du niveau d'exécution. Par exemple, l'exécution de la commande init 3 bascule le système en mode multi-utilisateur sans interface graphique, tandis que l'exécution de la commande init 5 démarre l'environnement de bureau graphique. Pour rendre la modification permanente, le niveau d'exécution par défaut doit être modifié dans le fichier /etc/inittab, où le système lit le niveau d'exécution à appliquer. botte par défaut.

Systèmes basés sur Systemd

Les niveaux d'exécution sont remplacés par objectifsPour passer temporairement à une autre cible, utilisez systemctl isolate , comme systemctl isolate multi-user.target pour passer en mode texte ou systemctl isolate graphical.target pour démarrer l'interface graphique. Pour modifier la valeur par défaut lors des prochains démarrages, exécutez systemctl set-default. , qui met à jour le lien symbolique pour la cible système par défaut.

Pourquoi le niveau d’exécution est-il important ?

Voici une liste de raisons pour lesquelles les niveaux d’exécution sont importants dans les systèmes Linux et Unix :

  • Controle du systèmeLes niveaux d'exécution définissent les services et les processus qui doivent s'exécuter, donnant aux administrateurs un contrôle précis sur l'état opérationnel du système.
  • SouplesseIls permettent de basculer rapidement entre différents modes, comme le mode mono-utilisateur pour la maintenance ou le mode graphique pour une utilisation sur ordinateur.
  • DépannageLes administrateurs peuvent démarrer dans des environnements minimaux (comme le niveau d'exécution 1) pour corriger les erreurs de configuration ou récupérer après des échecs.
  • La gestion des ressourcesEn désactivant les services inutiles dans certains niveaux d'exécution, le système peut conserver Processeur, Mémoire, et le pouvoir.
  • SécuritéLes niveaux d'exécution inférieurs peuvent restreindre l'accès aux utilisateurs et aux services, ce qui est utile pour isoler le système pendant la maintenance ou en cas de suspicion de compromission.
  • CohérenceIls fournissent une structure standardisée pour les états du système sur différents systèmes de type Unix, simplifiant ainsi l'administration.
  • Automatisation. Scripts et les configurations liées aux niveaux d'exécution rationalisent le démarrage, l'arrêt et les transitions, réduisant ainsi le travail manuel.

Problèmes de niveau d'exécution

Voici un aperçu des problèmes de niveau d'exécution courants et pourquoi ils sont importants :

  • Niveau d'exécution par défaut mal configuré. Si le niveau d'exécution par défaut du système (ou la cible systemd) est défini de manière incorrecte, la machine peut démarrer dans un état indésirable, tel que le mode graphique sur un server, ou un mode non réseau sur un poste de travail, entraînant un gaspillage de ressources ou une utilisabilité limitée.
  • Échec du chargement des services critiquesÀ un niveau d'exécution donné, certains daemons sont censés démarrer automatiquement. Si des erreurs de configuration les empêchent de démarrer, le système peut manquer de réseau, de services d'affichage, voire de fonctionnalités de connexion essentielles, le rendant partiellement ou totalement inutilisable.
  • Impossibilité de changer de niveau d'exécution. Problèmes avec les scripts d'initialisation ou le service dépendances peut empêcher le système de changer de mode dynamiquement. Par exemple, le passage du niveau d'exécution 3 (multi-utilisateur textuel) au niveau d'exécution 5 (graphique) peut échouer si le gestionnaire d'affichage est mal configuré ou absent.
  • Le démarrage échoue ou planteUne configuration de niveau d'exécution incorrecte ou rompue peut amener le système à tenter à plusieurs reprises de charger des services incompatibles, ce qui entraîne des redémarrages continus ou kernel panique. Cela se produit souvent lorsque le niveau d'exécution par défaut pointe vers un mode nécessitant une indisponibilité. matériel ou un logiciel.
  • Comportement incohérent selon les distributions. Pas tout Distributions Linux Traiter les niveaux d'exécution de la même manière. Par exemple, certains utilisent le niveau d'exécution 2 comme mode multi-utilisateur par défaut, tandis que d'autres utilisent les niveaux d'exécution 3 ou 5. Cela peut engendrer confusion et erreurs de configuration lorsque les administrateurs travaillent sur plusieurs systèmes.
  • Transition vers les cibles systemdLes systèmes Linux modernes ont largement remplacé les niveaux d'exécution par des cibles systemd. Bien qu'ils aient un objectif similaire, les différences de terminologie et de commandes peuvent poser problème aux administrateurs habitués à SysVinit, entraînant des erreurs de gestion des services et de récupération du système.

Quelle est la différence entre la cible et le niveau d’exécution ?

Voici un tableau comparatif qui explique la différence entre niveaux d'exécution et objectifs sous Linux :

AspectNiveau d'exécution (SysVinit)Cible (systemd)
DéfinitionUn état numérique prédéfini (0–6) qui détermine quels services et processus démarrent.Une unité nommée dans systemd qui regroupe les services et définit l'état du système.
FormatIdentifié par des numéros (par exemple, niveau d'exécution 3 = multi-utilisateur sans interface graphique).Identifiés par des noms descriptifs (par exemple, multi-user.target, graphical.target).
Fichier de configurationContrôlé via /etc/inittab.Géré avec des fichiers unitaires sous /etc/systemd/system/ et /lib/systemd/system/.
SouplesseÉtats fixes avec personnalisation limitée (principalement 7 niveaux d'exécution).Très flexible, permettant des cibles et des dépendances personnalisées.
État par défautDéfini dans /etc/inittab.Définir avec systemctl set-default .
Commande de changementModifié temporairement avec init ou telinit .Modifié temporairement avec systemctl isolate .
ExtensibilitéPas facilement extensible ; lié à l'ancien SysVinit.Entièrement extensible ; les administrateurs peuvent créer de nouvelles cibles pour des besoins spécifiques.
Vérification de l'état actuelVérifié avec le niveau d'exécution ou who -r.Vérifié avec systemctl get-default ou systemctl list-units --type=target.

Anastasie
Spasojevic
Anastazija est une rédactrice de contenu expérimentée avec des connaissances et une passion pour cloud l'informatique, les technologies de l'information et la sécurité en ligne. À phoenixNAP, elle se concentre sur la réponse à des questions brûlantes concernant la garantie de la robustesse et de la sécurité des données pour tous les acteurs du paysage numérique.