Run level
# Run level

Le run level, ou niveau d'exécution, est un chiffre ou une lettre utilisé par le processus init des systèmes de type Unix pour déterminer les fonctions activées.

## Fonctionnement

Le run level varie généralement de 0 à 6, et il y a parfois un niveau « s ». Chacun correspond à un ensemble d'applications à mettre en marche. En général, plus le run level est élevé, plus il y aura de fonctions actives.

Le run level 6 est affecté au redémarrage de l'ordinateur, et le run level 0 à l'arrêt. S'y ajoute parfois le niveau S (mode « single user »).

Le fichier /etc/inittab détermine le run level par défaut du système au démarrage, ainsi que les fonctions actives à chaque run level.

On passe d'un run level à l'autre en utilisant la commande init ou telinit (ou encore shutdown pour les transitions vers 0 ou 6). La transition d'un niveau à l'autre va lancer des scripts d'arrêt et de démarrage de fonctions.

Pour passer d'un niveau à l'autre, il n'est pas nécessaire de passer par les niveaux intermédiaires.

La commande « who -r » permet de consulter le run level actuel:

La commande « runlevel » le permet également:

## Organisation dans System V

Dans cette organisation héritée de UNIX System V, utilisée par Solaris et plusieurs distributions Linux, 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.

À 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 :

* les scripts dont le nom commence par un K dans le répertoire correspondant au niveau actuel sont lancés (dans l'ordre des numéros) avec le paramètre stop, ce qui a normalement pour effet d'arrêter le service correspondant,
* les scripts du nouveau niveau qui commencent par S sont appelés successivement avec le paramètre start.

## Signification conventionnelle des run levels

Les run levels ne sont pas tous normalisés, en général la signification suivante est adoptée :

* 0 : Arrêt
* 1 : Mode mono-utilisateur ou maintenance
* 2 à 5 : dépend du système d'exploitation
* 6 : Redémarrage

Le niveau 2 peut correspondre à un mode multi-utilisateur sans serveur applicatif.

Le niveau 3 correspond alors à un environnement multi-utilisateur avec serveurs applicatifs.

Le niveau 4 ou 5 est parfois utilisé pour lancer l'environnement graphique.

