Préface - Boot, Init et Shutdown << >> Up Title Contents

Boot, Init et Shutdown


Init System V

Cette section présente brièvement le processus de démarrage. Elle décrit l'utilisation d'Init System V, et les différences par rapport à sa version d'origine (celle utilisée dans les anciennes versions de Linux).

Init est le programme exécuté par le noyau, au démarrage du système. Il est chargé d'exécuter les différents processus nécessaires au démarrage (gettys, démons NFS, démons FTP, ...).

Init System V est en train de devenir un standard dans le monde Linux. Il est en effet beaucoup plus efficace et beaucoup plus facile à utiliser que la version BSD d'Init.

Contrairement aux fichiers de configuration de la version BSD qui se trouvent dans le répertoire /etc, ceux d'Init System V se trouvent dans un sous-répertoire de /etc. Ce répertoire s'appelle rc.d et contient le fichier rc.sysinit et les répertoires :

init.d

rc0.d

rc1.d

rc2.d

rc3.d

rc4.d

rc5.d

rc6.d

Le répertoire init.d contient un certain nombre de scripts. Vous devez normalement avoir un script par service exécuté au démarrage du système (nfs, httpd, ...). Utilisez rc.local ou rc.serial pour par exemple la configuration des ports séries.

rc.local doit se trouver dans /etc/rc.d (la plupart des systèmes en possèdent un par défaut), de même pour rc.serial.

Voici le processus de démarrage :

* le noyau recherche init, et exécute le premier qui a été trouvé

* init exécute /etc/rc.d/rc.sysinit

* s'il existe, rc.serial est exécuté

* init exécute tous les scripts définis par défaut

* init exécute rc.local

Le niveau d'exécution par défaut est défini dans /etc/inittab. Vous y trouverez sûrement la ligne suivante :

id:3:initdefault:

Le niveau d'exécution se trouve dans la seconde colonne, sur la plupart des systèmes la valeur sera initialisée à 3. Vous pouvez éditer manuellement le fichier /etc/inittab, pour modifier le niveau d'exécution (soyez très prudent). Si vous rencontrez un problème, rebootez et exécutez la commande suivante :

LILO boot : linux single

Vous pourrez ainsi redémarrer le système (en mode simple utilisateur) et corriger le problème.

Comment sont exécutés les différents scripts ? Si vous exécutez la commande ls-l dans le répertoire rc3.d, vous obtiendrez :

lrwxrwxrwx 1 root root 17 13:11 S10network -> ../init.d/network

lrwxrwxrwx 1 root root 16 13:11 S30syslog -> ../init.d/syslog

lrwxrwxrwx 1 root root 14 13:32 S40cron -> ../init.d/cron

lrwxrwxrwx 1 root root 14 13:11 S50inet -> ../init.d/inet

lrwxrwxrwx 1 root root 13 13:11 S60nfs -> ../init.d/nfs

lrwxrwxrwx 1 root root 15 13:11 S70nfsfs -> ../init.d/nfsfs

lrwxrwxrwx 1 root root 18 13:11 S90lpf -> ../init.d/lpd.init

lrwxrwxrwx 1 root root 11 13:11 S99local -> ../rc.local

Les fichiers de ce répertoire sont en fait des liens sur des scripts du répertoire /init. Vous pouvez remarquer que le lien commence par la lettre S, suivie d'un nombre. La lettre S précise que le script doit être démarré (et la lettre K précise que le script doit être arrêté). Le nombre est utilisé pour préciser un ordre d'exécution.

Comment sont démarrés et arrêtés les différents services ? Chacun des scripts peut recevoir un argument : start ou stop. Vous pouvez exécuter ces scripts de façon manuelle (ici l'arrêt du serveur httpd) :

/etc/rc.d/init.d/httpd.init stop

Lorsque la lettre S apparaît, le script est exécuté avec l'argument start. Lorsque la lettre K apparaît, le script est exécuté avec l'argument stop.

Les niveaux dexécution

Dans la plupart des cas le système RH Linux fonctionne en mode multi-utilisateurs (3). Voici la liste des niveaux d'exécutions :

0 Halt (arrêté)

1 Single user mode (mode utilisateur unique)

2 Multiuser mode, without NFS (mode multi-utilisateurs, sans NFS)

3 Multiuser mode (mode multi-utilisateurs)

6 Reboot

Si votre machine ne redémarre pas correctement (problème lié au fichier /etc/inittab) ou si vous n'arrivez pas à vous connecter (vous avez par exemple oublié votre mot de passe), redémarrez le système en mode utilisateur unique (tapez au prompt LILO : linux 1) et corrigez le problème.

Shutdown

Pour arrêter le système, utilisez la commande shutdown. Pour plus de détails consultez les pages du man consacrées à cette commande.

* Pour arrêter le système, utilisez : shutdown -h now.

* Pour arrêter le système puis redémarrer, utilisez : shutdown -r now.

Nous vous déconseillons l'usage des commandes reboot et halt.


<< >> Up Title Contents

© 1996-1997 "RedHat et les Logiciels du Soleil"