6Jul

Quels sont "Runlevels" sur Linux?

Lorsqu'un système Linux démarre, il entre dans son niveau d'exécution par défaut et exécute les scripts de démarrage associés à ce niveau d'exécution. Vous pouvez également basculer entre les niveaux d'exécution. Par exemple, un niveau d'exécution est prévu pour les opérations de récupération et de maintenance.

Traditionnellement, Linux utilisait des scripts d'initialisation de type V système - tandis que les nouveaux systèmes d'initialisation finiront par obsoler les niveaux d'exécution traditionnels, ce qu'ils n'ont pas encore fait. Par exemple, le système Upstart d'Ubuntu utilise toujours les scripts traditionnels de type System V.

Qu'est-ce qu'un Runlevel?

Lorsqu'un système Linux démarre, il lance les processus init .init est responsable du lancement des autres processus sur le système. Par exemple, lorsque vous démarrez votre ordinateur Linux, le noyau démarre init, et init exécute les scripts de démarrage pour initialiser votre matériel, mettre en réseau, démarrer votre bureau graphique.

Cependant, il n'y a pas qu'un seul ensemble de scripts de démarrage init est exécuté.Il existe plusieurs niveaux d'exécution avec leurs propres scripts de démarrage. Par exemple, un niveau d'exécution peut mettre en réseau et lancer le bureau graphique, tandis qu'un autre niveau d'exécution peut laisser le réseau désactivé et ignorer le bureau graphique. Cela signifie que vous pouvez passer du "mode bureau graphique" au "mode console texte sans réseau" avec une seule commande, sans démarrer et arrêter manuellement différents services.

Plus spécifiquement, init exécute les scripts situés dans un répertoire spécifique qui correspond au niveau d'exécution. Par exemple, lorsque vous entrez le niveau d'exécution 3 sur Ubuntu, init exécute les scripts situés dans le répertoire /etc/ rc3.d.

Au moins, c'est ainsi que cela fonctionne avec un système d'initialisation System V traditionnel - les distributions Linux commencent à remplacer l'ancien système d'initialisation System V.Tandis que Upstart d'Ubuntu maintient actuellement la compatibilité avec les scripts d'initialisation de SysV, ceci est susceptible de changer dans le futur.

Les niveaux d'exécution

Certains niveaux d'exécution sont standard entre les distributions Linux, tandis que certains niveaux d'exécution varient d'une distribution à l'autre.

Les niveaux d'exécution suivants sont standard:

  • 0 - Arrêt ( Arrête le système.)
  • 1 - Mode utilisateur unique ( Le système démarre en mode superutilisateur sans démarrer les démons ou le réseau.) Idéal pour démarrer dans un environnement de récupération ou de diagnostic.)
  • 6 - Redémarrage

Les niveaux d'exécution 2-5 varient en fonction de la distribution. Par exemple, sur Ubuntu et Debian, les niveaux de fonctionnement 2-5 sont les mêmes et fournissent un mode multi-utilisateur complet avec une connexion réseau et graphique. Sur Fedora et Red Hat, le niveau d'exécution 2 fournit le mode multi-utilisateur sans réseau( connexion console uniquement), le niveau d'exécution 3 fournit le mode multi-utilisateur avec le réseau( connexion console uniquement), le niveau d'exécution 4 est inutilisé et le niveau d'exécution 5mise en réseau et connexion graphique.

Passage à un autre niveau d'exécution

Pour basculer vers un autre niveau d'exécution alors que le système est déjà en cours d'exécution, utilisez la commande suivante:

sudo telinit #

Remplacez # par le numéro du niveau d'exécution vers lequel vous souhaitez basculer. Omettez sudo et exécutez la commande en tant que root si vous exécutez une distribution qui n'utilise pas sudo.

Amorcer directement vers un niveau d'exécution spécifique

Vous pouvez sélectionner un niveau d'exécution à partir du chargeur de démarrage - Grub, par exemple. Au début du processus de démarrage, appuyez sur une touche pour accéder à Grub, sélectionnez votre entrée de démarrage et appuyez sur e pour la modifier.

Vous pouvez ajouter à la fin de la ligne linux pour entrer le niveau d'exécution mono-utilisateur( niveau d'exécution 1).(Appuyez sur Ctrl + x pour démarrer après.) C'est la même chose que l'option de mode de récupération dans Grub.

Traditionnellement, vous pouvez spécifier un nombre en tant que paramètre du noyau et vous pouvez démarrer à ce niveau d'exécution - par exemple, en utilisant 3 au lieu de seul pour démarrer au niveau d'exécution 3. Cependant, cela ne semble pas fonctionner sur les dernières versionsd'Ubuntu - Upstart ne semble pas le permettre. De même, la manière dont vous modifiez le niveau d'exécution par défaut dépend de votre distribution.

Alors que le démon Upstart d'Ubuntu émule encore le système d'initialisation SystemV, une grande partie de cette information va changer à l'avenir. Par exemple, Upstart est basé sur les événements: il peut arrêter et démarrer les services lorsque des événements se produisent( par exemple, un service peut démarrer lorsqu'un périphérique est connecté au système et s'arrêter lorsque le périphérique est supprimé). Fedora a également son propre successeurà init, systemd.