Runlevel

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Diagnostic du runlevel courant (SysV init)
Commande runlevel
Contexte RHEL/CentOS 5/6, systèmes SysV classiques — voir Init pour la liste complète des runlevels
Voir aussi Init (table des runlevels) · Chkconfig (services par runlevel)

runlevel affiche le runlevel précédent et le runlevel courant du système. C'est un simple outil de lecture : il ne sert qu'à consulter l'état, pas à en changer (voir plus bas pour changer de runlevel). La liste complète des runlevels standard (0 à 6) et leur signification est détaillée dans Init — cette page se concentre sur l'usage pratique de la commande.

Lire le runlevel courant

runlevel
# N 3      -> pas de changement depuis le démarrage (N = "None"), runlevel courant 3
# 5 3      -> le système est passé du runlevel 5 au runlevel 3 à chaud, sans redémarrer

who -r
# run-level 3  2013-08-07 15:35   -> runlevel courant et date/heure du dernier changement

Changer de runlevel

runlevel ne change pas l'état du système, c'est init ou son alias telinit qui s'en charge :

init 3          # ou : telinit 3   -- changement de runlevel à chaud, sans redémarrer

Pour que le changement soit permanent (pris en compte au prochain redémarrage), modifier la ligne initdefault de /etc/inittab :

vi /etc/inittab
# dernière ligne du fichier :
id:3:initdefault:

Vérifier les services avant de changer de runlevel

Avant un passage à chaud (typiquement runlevel 5 vers 3), vérifier que les services critiques seront bien démarrés dans le nouveau runlevel. Chkconfig permet de comparer l'état des services entre deux runlevels :

chkconfig --list | egrep -v '3:on.*5:on|3:off.*5:off'                # services dont l'état diffère entre les runlevels 3 et 5
chkconfig --list --type sysv | egrep -v '3:on.*5:on|3:off.*5:off'    # idem, en excluant les services xinetd (ne fonctionne pas sur les systèmes anciens)

⚠️ Sur un système en français, la sortie de chkconfig --list est localisée et casse le filtrage par expression régulière ci-dessus — forcer LANG=C avant la commande.

Voir aussi

  • Init — table complète des runlevels et séquence de démarrage SysV
  • Chkconfig — gestion des services par runlevel (RHEL/CentOS 5/6)