- Runlevel
-
Run level
Le run level, ou niveau de fonctionnement, est une fonction utilisée par les systèmes d'exploitation de type Unix ou Linux utilisant le système d'init (système V).
Il existe différents run levels, qui correspondent chacun à un ensemble d'applications à mettre en marche. Ainsi, quand le système est démarré, il passe par le run level 1 puis par le run level 2, et il est possible de configurer les applications qui seront lancées à ce moment ; il existe en tout sept run levels, le run level 6 étant généralement affecté au redémarrage de l'ordinateur, et le run level 0 à l'arrêt. S'y ajoute souvent le niveau S (mode "single user").
Il est ainsi possible de configurer plusieurs run levels fonctionnant différemment : les niveaux utilisés sans redémarrer ou arrêter la machine sont donc de deux à cinq, et il est possible de passer de l'un à l'autre.
Pour passer d'un run level à l'autre, une commande comme "init X" suffit (X étant le niveau d'exécution choisi).
Le run level par défaut au démarrage est défini dans le fichier /etc/inittab.
Il est également possible de déterminer dans la commande de démarrage quel run level doit démarrer, simplement en ajoutant son chiffre à la suite de la commande d'initialisation du système.
Il n'y a pas de hiérarchie ni de chronologie dans les run levels (il n'est pas nécessaire de passer par 3 pour aller de 2 à 4, par exemple).
Sommaire
Configuration
Pour définir le run level par défaut, il faut mettre une ligne comme
id:5:initdefault: (ici, le run level 5)
dans le fichier /etc/inittab.
Il ne faut pas mettre 0 ou 6 comme valeur numérique.
Organisation « à la System V »
Ce type d'organisation est utilisé dans les distributions Red Hat, Debian, etc. Les scripts de lancement des applications sont regroupés dans un répertoire commun /etc/init.d. Ces scripts reçoivent un paramètre qui peut être start, stop, restart, etc. Ils ont généralement la structure suivante :
#!/bin/sh case $1 in start) ... # commandes pour démarrer le service .... ;; stop) # commandes pour arrêter le service .... ;; restart) $0 stop sleep 1 $0 start ;; esac
À chaque niveau correspond un répertoire (typiquement /etc/rc.d/rc2.d pour le niveau 2 de liens symboliques vers des fichiers de /etc/init.d. Ces liens symboliques portent des noms commençant par la lettre S ou K, suivi d'un numéro sur deux chiffres.
Lors d'un changement de run level (commandes init et telinit)
- les scripts dont le nom commence par un K dans le répertoire correspondant au niveau courant sont lancés (dans l'ordre des numéros) avec le parametre stop, ce qui a normalement pour effet d'arrêter le service correspondant.
- les scripts du nouveau niveau qui commencent par S sont activés avec le paramêtre start.
Signification conventionnelle des run level
Les run levels ne sont pas tous normalisés.
Les run levels standards
- 0 : Arrêt
- 1 : Mode monoutilisateur
- 6 : Redémarrage
Les run levels Debian et Ubuntu
Toutes les distributions basées sur Debian, comme Ubuntu, ne font aucune distinction entre les runlevels allant de 2 à 5. Voir pour cela la FAQ de Debian au démarrage.
- 0 : Arrêt
- 1 : Mode maintenance
- 2 à 5 : Mode multiutilisateur complet avec serveur graphique si installé.
- 6 : Redémarrage
Le fichier /etc/inittab permettant de définir un run level par défaut n'est plus présent sur Ubuntu, il a été éclaté en plusieurs élements, voir Upstart
Les run levels type RedHat (Mandriva, etc.)
- 0 : Arrêt
- 1 : Mode maintenance
- 2 : Mode multiutilisateur (sans la couche réseau)
- 3 : Mode multiutilisateur (avec la couche réseau)
- 4 : Inutilisé
- 5 : Mode multiutilisateur avec serveur graphique
- 6 : Redémarrage
Article connexe
Catégorie : Unix
Wikimedia Foundation. 2010.