Linux-Mandrake: Manuel de référence | ||
---|---|---|
Page précédente | Chapitre 12. Les fichiers de démarrage : init « System V » | Page suivante |
Tous les fichiers qui ressortissent au démarrage du système se trouvent dans le répertoire /etc/rc.d. En voici la liste :
$ ls /etc/rc.d init.d/ rc.local* rc0.d/ rc2.d/ rc4.d/ rc6.d/ rc* rc.sysinit* rc1.d/ rc3.d/ rc5.d/ |
En premier lieu, comme nous l'avons vu, le fichier rc.sysinit est exécuté. C'est lui qui est chargé de mettre en place la configuration de base de la machine : type du clavier, configuration de certains périphériques, vérification des systèmes de fichiers, etc.
Puis le script rc est exécuté, avec en argument le niveau d'exécution. Nous avons vu que le niveau d'exécution est un simple entier, et pour chaque niveau d'exécution <x> défini, il doit exister un répertoire correspondant rc<x>.d. Dans une installation typique de Linux-Mandrake, vous pouvez donc voir que 6 niveaux d'exécution sont ainsi définis :
0 : Arrêt complet de la machine;
1 : Mode monoutilisateur; à utiliser en cas de gros pépin!
2 : Mode multi-utilisateur, sans réseau;
3 : Mode multi-utilisateur, avec réseau;
4 : Inutilisé;
5 : Comme 3, mais avec le lancement de l'interface de login graphique;
6 : Redémarrage.
Intéressons-nous de plus près au contenu du répertoire rc5.d, par exemple :
$ ls rc5.d K15postgresql@ K60atd@ S15netfs@ S60lpd@ S90xfs@ K20nfs@ K96pcmcia@ S20random@ S60nfs@ S99linuxconf@ K20rstatd@ S05apmd@ S30syslog@ S66yppasswdd@ S99local@ K20rusersd@ S10network@ S40crond@ S75keytable@ K20rwhod@ S11portmap@ S50inet@ S85gpm@ K30sendmail@ S12ypserv@ S55named@ S85httpd@ K35smb@ S13ypbind@ S55routed@ S85sound@ |
Comme vous pouvez le voir, tous les fichiers de ce répertoire sont des liens symboliques et ils ont tous une forme bien particulière. Leur forme générale est <S|K><ordre><nom_du_service> Le S signifie Start, démarrer le service, et K signifie Kill, arrêter le service. Les scripts sont exécutés dans l'ordre des numéros croissants, et si deux scripts ont le même numéro, c'est l'ordre alphabétique qui prévaudra. On peut voir également que chacun de ces liens symboliques pointe vers des scripts situés dans /etc/rc.d/init.d (à l'exception de local), scripts qui sont chargés de contrôler un service bien particulier.
Quand le système entre dans un niveau d'exécution donné, il exécute d'abord les liens K dans l'ordre : rc vérifie où pointe le lien, puis appelle le script correspondant avec le seul argument stop. Puis il exécute les scripts S, toujours selon la même méthode, mis à part que le script est appelé avec l'argument start.
Ainsi, sans citer tous les scripts, on peut voir que quand le système entre dans le niveau d'exécution 5, il exécute d'abord K15postgresql, c'est-à-dire /etc/rc.d/init.d/postgresql stop. Puis K20nfs, puis K20rstatd, jusqu'au dernier; ensuite, il exécute tous les scripts S : S05ampd en premier lieu; ce qui invoque donc
/etc/rc.d/init.d/apmd start |
Armé de tout ceci, vous pouvez à votre guise créer un niveau d'exécution entier en quelques minutes, ou empêcher le démarrage ou l'arrêt d'un service en effaçant le lien symbolique correspondant (il existe cependant des programmes d'interfaçage pour ce faire, en particulier DrakXServices et chkconfig; le premier étant un programme graphique).
Page précédente | Début | Page suivante |
Les fichiers de démarrage : init « System V » | Remonter | Contrôle des processus |