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, et tout ce qu'on veut lancer au démarrage de la
machine).
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 suivants :
105#105
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, etc. 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 niveau d'exécution par défaut est défini dans /etc/inittab. Vous y trouverez sûrement la ligne suivante :
106#106
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, redémarrez le système et exécutez la commande suivante :
107#107
Cela devrait vous permettre 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
verrez quelque chose comme ça :
108#108
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. Ce S précise que le
script doit être démarré, la lettre Kpré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 chiffres,
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 :
109#109
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 : un niveau d'exécution serveur pour httpd, sendmail, et utilisateur pour xdm, etc.