Mémento des commandes abordées dans ce chapitre :

# runlevel   (connaître le niveau de démarrage actuel de la machine)
# telinit <niveau de démarrage> (change le runlevel de la machine par le niveau de démarrage indiqué en paramètre)
# telinit q
(demande au processus Init de relire le fichier /etc/inittab)

Nous allons aborder ici la question du démarrage et de l'arrêt du système.
Pour commencer, voici un schéma simplifié des différentes étapes qui se déroulent lorsque vous allumez votre machine :
init2

Le processus Init a pour objectif d'initialiser notamment l'environnement logiciel du système et de lancer un certain nombre d'autres processus.
Le niveau de démarrage de votre système est défini dans le fichier /etc/inittab par la ligne suivante :
# The default runlevel.
id:2:initdefault:

Votre niveau de démarrage est 2.
Il existe, sous Debian, 4 runlevels ou niveau de démarrage :
- le niveau 0 qui est utilisé lors de la phase d'arrêt de l'ordinateur
- le niveau 1 ou single-user qui est un démarrage du système en mode dégradé et est utilisé pour les opérations de maintenance
- le niveau 2 de fonctionnement normal avec démarrage des services réseaux, de l'interface graphique, des connextions de utilisateurs etc ...
- le niveau 6 est utilisé lors de l'extinction quand un redémarrage de la machine est demandé.

Pour connaître votre niveau de démarrage actuel de votre machine, vous pouvez exécuter également la commande :
# runlevel
N 2

Vous pouvez changer le niveau de démarrage en appelant la commande telinit :
Exemple pour redémarrer en mode maintenance :
# telinit 1
 

Si vous avez apportez des modifications au fichier /etc/inittab et que vous voulez que le processus Init relise le fichier :
# telinit q

Le processus Init va alors exécuter en fonction du niveau de démarrage un script situé sous /etc/init.d/ :
init3


















Les scripts situés sous /etc/rc[niveau de démarrage].d sont de la forme suivante :
- SXX[nom du script] : ceux qui commencent par S sont les scripts qui sont démarrés et le nombre indique l'ordre de démarrage (S10 débutera avant S20 etc ...)
- KXX[nom du script] : ceux qui commencent par K sont les scripts qui sont invoqués lors de l'arrêt de la machine.

En fait, ces scripts ne sont que des liens symboliques qui pointent vers le script situé sous /etc/init.d
Ainsi tous les scripts d'arrêt et démarrage sont réellement situés sous /etc/init.d
Exemple : la première lettre l (en rouge ici) signifie que nous avons affaire à un lien symbolique.
lrwxrwxrwx 1 root root 14 oct 23 21:44 /etc/rc2.d/S20cups -> ../init.d/cups