Red Hat Linux MANUEL DE L'UTILISATEUR - 11.5 Le processus Boot, Init et Shutdown  Précédent  Suivant  Début chapitre  Préface  Table des matières


11.5 Le processus Boot, Init et Shutdown


11.5.1 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 ou lorsque vous changez de niveau d'exécution. Les services incluent le réseau, nfs, sendmail, httpd, ... Ils n'incluent pas par exemple setserial qui est exécuté une seule fois. Utilisez dans ce cas rc.local ou rc.serial.

rc.local doit se trouver dans /etc/rc.d. La plupart des systèmes en possèdent un, même s'il ne fait pas grand chose. Vous pouvez aussi ajouter rc.serial dans /etc/rc.d, si vous avez besoin d'effectuer des modifications sur le port série au démarrage.

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

* rc.sysinit effectue un certain nombre de choses et exécute ensuite rc.serial (s'il existe)

* init exécute tous les scripts pour le niveau d'exécution 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

Cela vous permettra de redémarrer le système (en mode simple utilisateur) et de 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.d. 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é, la lettre K précise que le script doit être arrêté. Le nombre est utilisé pour préciser un ordre d'exécution. Init exécute les services dans l'ordre dans lesquels ils apparaissent. Vous pouvez dupliquer les nombres, mais cela risque d'être confus. Vous avez simplement besoin d'utiliser deux digits, ainsi que le caractère S ou K pour démarrer ou arrêter un service.

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, pour arrêter ici le 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.

Pourquoi tous ces niveaux d'exécution ? Certaines personnes souhaitent utiliser le système pour plusieurs applications. Le niveau d'exécution serveur pour httpd, sendmail, ... et utilisateur pour xdm, ...

11.5.2 Les niveaux d'exécution

Dans la plupart des cas, Red hat Linux fonctionne en mode multi-utilisateurs (3). Voici la liste des niveaux d'exécution :

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 (problème lié au fichier /etc/passwd ou si vous avez 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.

11.5.3 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 qui risquent d'endommager votre système de fichiers.


Précédent  Suivant  Début chapitre  Préface  Table des matières

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