Les niveaux d'exécution

Après la première phase de démarrage d'un système Linux, le programme init est exécuté. Il a la charge de lancer les programmes et processus inscrits dans le fichier /etc/inittab. Init exécute les commandes en fonction du niveau d'exécution du système. On parle alors de runlevels.

 

LES DIFFERENTS NIVEAUX

Les niveaux d'exécution «classiques» sont les suivants : 0, 1, 2, 3, 4, 5, 6 et S. Il est également possible d'utiliser 7, 8, 9, a, b et c, mais ceux-ci ne sont quasiment jamais utilisés. A, b et c sont les niveaux appelés ondemand runlevels.

Parmi les niveaux «classiques», il faut distinguer :

Le niveau Q n'existe pas en tant que tel. Il s'agit plutôt d'un paramètre passé à la commande init pour forcer la relecture du fichier inittab.

Il reste donc les niveaux 2, 3, 4 et 5 qui sont personnalisables selon votre convenance par l'intermédiaire du fichier inittab.

LE FICHIER /ETC/INITTAB

Le contenu du fichier se présente sous forme de lignes avec la syntaxe suivante : code:niveau:action:commande.

Code est le label de la ligne.

Niveau correspond au(x) niveau(x) où doit être exécutée la commande.

L'action peut être :

EXEMPLE DE FICHIER INITTAB

Voici un fichier /etc/inittab typique provenant d'une distribution Slackware 3.3.

# On commence par la définition du niveau par défaut :

id:3:initdefault:

#On lance le fichier script /etc/rc.d/rc.S durant le boot (action sysinit)

si:S:sysinit:/etc/rc.d/rc.S

#On définit le script à lancer en passant en mono-utilisateur

su:1S:wait:/etc/rc.d/rc.K

#On définit le script à lancer en passant en multi-utilisateur

rc:2345:wait:/etc/rc.d/rc.M

#On définit la commande à lancer lors d'un CTRL+ALT+SUPP

ca::ctrlaltdel:/sbin/shutdown -t5 -rfn now

#On définit le script à lancer pour l'arrêt du système (niveau 0)

l0:0:wait:/etc/rc.d/rc.0

#On définit le script pour le redémarrage du système

l6:6:wait:/etc/rc.d/rc.6

#On définit la commande pour un problème d'alimentation

pf::powerfail:/sbin/shutdown -f +5 «OH, JE PERD MA VA NIL LE»

#Si l'alimentation revient avant l'extinction, on annule de # shutdown

pg:0123456:powerokwait:/sbin/shutdown -c «RHAAAHHH LOVELY»

#Si l'alimentation revient en mono-utilisateur, on passe en # multi-utilisateur

ps:S:powerokwait:/sbin/init 5

#Lancement des 6 consoles virtuelles agetty en respawn

c1:1235:respawn:/sbin/agetty 38400 tty1 linux

c2:1235:respawn:/sbin/agetty 38400 tty2 linux

c3:1235:respawn:/sbin/agetty 38400 tty3 linux

c4:1235:respawn:/sbin/agetty 38400 tty4 linux

c5:1235:respawn:/sbin/agetty 38400 tty5 linux

c6:12345:respawn:/sbin/agetty 38400 tty6 linux

# Définition du Runlevel 4 pour le système Xwindow

# Ici 4 et sur une RedHat c'est le niveau 5

# Habituellement on lance xdm, ici on préfère Login.app plus # sympathique

x1:4:respawn:/usr/local/bin/Login.app >& /dev/null

Dernier point, la commande runlevel vous permet de savoir dans quel niveau vous vous trouvez et quel était le niveau précédent.

Attention tout de même, avant de vous lancer dans le bidouillage nocturne : le fichier /etc/inittab est lu au démarrage, et, de ce fait, une erreur dans ce fichier peut paralyser votre système Linux pendant un bon bout de temps...


© Copyright 2000 Diamond Editions/Linux magazine France. - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".