Runlevel
| 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.