| Red Hat Linux 6.2: Le Guide officiel de référence Red Hat Linux | ||
|---|---|---|
| Précédent | Chapitre 2. Administration du système | Suivant |
Cette section contient des informations sur ce qu'il se passe lorsque vous démarrez ou arrêtez votre système Red Hat Linux.
Lorsqu'un ordinateur démarre, le processeur recherche le BIOS (Basic Input/Output System, système d'entrée/sortie de base) à la fin de la mémoire du système et l'exécute. Le programme BIOS est écrit dans la mémoire permanente en lecture seule, et est toujours prêt à fonctionner. Le BIOS fournit l'interface du niveau le plus bas avec les périphériques et contrôle la première étape du processus de démarrage.
Le BIOS teste le système, recherche et contrôle les périphériques, puis recherche un lecteur à partir duquel démarrer. Généralement, il contrôle le lecteur de disquette (ou le lecteur de CD-ROM sur bon nombre de systèmes plus récents), s'il y en a un, puis examine le disque dur. Sur le disque dur, le BIOS recherche un bloc de démarrage maître (MBR), en commençant par le premier secteur du premier disque, puis lance l'exécution du MBR.
Le bloc de démarrage maître recherche la première partition active et lit l'enregistrement d'amorçage de la partition. L'enregistrement d'amorçage contient des instructions sur la manière de charger le chargeur de démarrage LILO (LInux LOader). Le bloc de démarrage maître charge ensuite LILO qui contrôle la suite du processus.
LILO lit le fichier /etc/lilo.conf qui précise quel(s) système(s) d'exploitation configurer ou quel noyau lancer, et où s'installer lui-même (par exemple, /dev/hda pour votre disque dur). LILO affiche une invite LILO: à l'écran et attend pendant un laps de temps prédéfini (également défini dans le fichier lilo.conf) une entrée de l'utilisateur. Si lilo.conf est défini pour offrir à LILO un choix de systèmes d'exploitation, vous pouvez entrer à ce niveau l'étiquette du système d'exploitation que vous voulez démarrer.
Après avoir attendu un certain laps de temps (habituellement cinq secondes), LILO entreprend de démarrer le premier système d'exploitation figurant dans le fichier lilo.conf.
Si LILO démarre Linux, il commence par démarrer le noyau qui est un fichier vmlinuz (plus un numéro de version tel que vmlinuz-2.2.15-xx) situé dans le répertoire /boot . Ensuite, le noyau prend le relais.
Le noyau recherche un programme init à divers endroits (/sbin est un emplacement habituel) et exécute le premier trouvé. Le programme Init prend le relais.
Le programme Init démarre tous les processus dont est composé le système Linux (en en devenant le parent ou grand-parent). Tout d'abord, il exécute /etc/rc.d/rc.sysinit qui définit le chemin d'accès, configure la connexion au réseau si nécessaire, lance les échanges, vérifie les systèmes de fichiers, etc. Fondamentalement, rc.sysinit s'occupe de tout ce que le système doit accomplir lors de l'initialisation. Par exemple, sur un système en réseau, rc.sysinit utilise les informations figurant dans les fichiers /etc/sysconfig/network et /etc/sysconfig/clock pour initialiser les processus du réseau et l'horloge. Il peut également exécuter rc.serial, si certains processus de port série doivent être initialisés.
Le programme Init examine et implémente le fichier /etc/inittab. Le fichier /etc/inittab décrit la manière dont le système doit être configuré à chaque niveau d'exécution et définit le niveau d'exécution par défaut. Ce fichier indique que /etc/rc.d/rc et /sbin/update doivent être exécutés chaque fois qu'un niveau d'exécution commence.
Le fichier /sbin/update évacue les tampons utilisés vers le disque.
A chaque fois que le niveau d'exécution change, /etc/rc.d/rc démarre et arrête les services. Tout d'abord, rc définit la bibliothèque de fonctions source du système (généralement /etc/rc.d/init.d/functions), qui précise comment lancer/arrêter un programme et comment trouver le PID d'un programme. Le fichier rc recherche ensuite les niveaux d'exécution actuel et précédent, et indique à linuxconf le niveau d'exécution approprié.
Le fichier rc lance tous les processus en arrière-plan nécessaires au fonctionnement du système, puis recherche un répertoire rc pour ce niveau d'exécution (/etc/rc.d/rc<x>.d, où <x> est numéroté 0-6). rc arrête tous les scripts d'arrêt (leur nom de fichier commence par K ) dans /rc.d/. Il initialise ensuite tous les scripts de lancement (leur nom de fichier commence par S ) dans le répertoire de niveau d'exécution approprié (de manière à ce que tous les services et applications soient lancés correctement).
Par exemple, pour le niveau d'exécution 5, rc recherche dans le répertoire /etc/rc.d/rc5.d et découvre qu'il doit arrêter rusersd, rwalld, rwhod, mcserv, mars-nwe, apmd et pcmcia. Ensuite, rc effectue une recherche dans le même répertoire et découvre des scripts de lancement pour kmod, network, nfsfs, randomc, syslog, atd, crond, portmap, snmpd, inet, xntpd, lpd, nfs.rpmsave, dhcpd, ypbind, autofs, keytable, sendmail, gpm, sound et smb.rpmsave. Et la vie continue.
Le fichier /etc/inittab lance un processus getty pour chaque console virtuelle (invites de connexion) et pour chaque niveau d'exécution (les niveaux d'exécution 2-5 obtiennent six consoles virtuelles ; le niveau d'exécution 1, qui est un mode simple utilisateur, n'en obtient qu'une ; les niveaux d'exécution 0 et 6 n'obtiennent aucune console virtuelle). /etc/inittab indique également que gdm, le gestionnaire d'ouverture de session X Window, doit démarrer au niveau d'exécution 5.
De même, le fichier /etc/inittab décrit comment le système doit prendre en charge la conversion de la combinaison de touches Ctrl-Alt-Suppr en quelque chose comme la commande /sbin/shutdown -t3 -r now. Enfin, le fichier /etc/inittab indique ce que le système doit faire en cas de panne d'alimentation.
A ce stade, le système devrait afficher une invite de connexion. Tout cela n'a pris que quelques secondes.
Nous allons à présent présenter les informations contenues dans les fichiers figurant dans /etc/sysconfig.
Les informations suivantes décrivent les divers fichiers figurant dans /etc/sysconfig, leur fonction et leur contenu.
Les fichiers suivants se trouvent normalement dans /etc/sysconfig:
/etc/sysconfig/clock
/etc/sysconfig/hwconf (ceci devrait être ignoré pour l'édition)
/etc/sysconfig/mouse
/etc/sysconfig/sendmail
/etc/sysconfig/apmd
/etc/sysconfig/init
/etc/sysconfig/keyboard
/etc/sysconfig/network
/etc/sysconfig/pcmica
/etc/sysconfig/soundcard (qui est écrit par sndconfig)
Examinons-les.
Le fichier /etc/sysconfig/clock contrôle l'interprétation des valeurs lues sur l'horloge système. Les versions précédentes de Red Hat Linux utilisaient les valeurs suivantes (qui sont déconseillées) :
CLOCKMODE=mode, où mode est l'une des valeurs suivantes :
GMT -- indique que l'horloge est réglée sur UTC (temps universel coordonné).
ARC -- sur Alpha uniquement, indique que le décalage temporel de 42 ans de la console ARC est effectif.
Actuellement, les valeurs correctes sont :
UTC=booléen, où booléen est l'une des valeurs suivantes :
true -- indique que l'horloge est réglée sur UTC (temps universel coordonné). Toute autre valeur indique qu'elle est réglée sur l'heure locale.
ARC=booléen, où booléen est l'une des valeurs suivantes :
true -- (uniquement pour les systèmes Alpha) indique que le décalage temporel de 42 ans de la console ARC est effectif. Toute autre valeur indique que l'époque UNIX normale est supposée.
ZONE="nomfichier" -- indique le fichier de zone sous /user/share/zoneinfo dont /etc/localtime est une copie, par exemple :
ZONE="US/Eastern" |
Le fichier /etc/sysconfig/hwconf affiche la liste de tout le matériel détecté par kudzu sur le système, de même que les informations sur les pilotes utilisés, l'ID du fabricant et l'ID du périphérique. Il n'est pas destiné à être modifié. Si vous le modifiez néanmoins, il se peut que certains périphériques apparaissent soudain comme ajoutés ou supprimés.
Le fichier /etc/sysconfig/mouse est utilisé pour fournir des informations sur la souris disponible. Les valeurs suivantes peuvent être utilisées :
MOUSETYPE=type, où type et l'une des valeurs suivantes :
microsoft -- souris Microsoft.
mouseman -- souris MouseMan.
mousesystems -- souris Mouse Systems.
ps/2 -- souris PS/2.
msbm -- souris bus Microsoft.
logibm -- souris bus Logitech.
atibm -- souris bus ATI.
logitech -- souris Logitech.
mmseries -- souris MouseMan plus ancienne.
mmhittab -- souris mmhittab.
XEMU3=emulation, où emulation est l'une des valeurs suivantes :
yes -- émuler une souris à trois boutons.
no -- la souris comporte déjà trois boutons.
En outre, /dev/mouse est un lien symbolique pointant sur la souris réelle.
Le fichier /etc/sysconfig/sendmail permet l'envoi de messages à un ou plusieurs destinataires, en routant le message sur les réseaux nécessaires. Le fichier définit les valeurs par défaut pour l'exécution du programme sendmail. Ses valeurs par défaut font qu'il s'exécute comme démon en arrière-plan et qu'il contrôle sa file d'attente une fois par heure si quelque chose a été sauvegardé.
Les valeurs suivantes peuvent être utilisées :
DAEMON=réponse, où réponse est l'une des valeurs suivantes :
yes -- Sendmail doit être configuré. Yes implique -bd.
no -- Sendmail ne doit pas être configuré.
QUEUE=1h qui est transmis à sendmail sous la forme -q$QUEUE. L'option -q n'est pas transmise à sendmail si /etc/sysconfig/sendmail existe et si QUEUE est vide ou non défini.
Le fichier /etc/sysconfig/apmd est utilisé par apmd comme configuration indiquant ce qu'il convient de lancer/arrêter/modifier en cas de suspension ou de reprise. Il est configuré pour activer ou désactiver apmd au cours du démarrage, selon que votre matériel prend ou non en charge la technologie de gestion de l'alimentation apm (Advanced Power Management) ; vous pouvez choisir de ne pas l'utiliser.
Le fichier /etc/sysconfig/init contrôle l'aspect du système durant la séquence d'amorçage.
Les valeurs suivantes peuvent être utilisées :
BOOTUP=<mode d'amorçage>, où <mode d'amorçage> est l'une des valeurs suivantes :
BOOTUP=color signifie nouvel affichage au démarrage (à partir de Red Hat Linux 6.0).
BOOTUP=verbose signifie ancien style d'affichage.
Toute autre option signifie nouvel affichage, mais sans formatage ANSI.
LOGLEVEL=<un chiffre>, où <un chiffre> définit le niveau de connexion initial de la console pour le noyau. La valeur par défaut est 7 ; 8 signifie tout (y compris le débogage) ; 1 signifie rien sauf les "kernel panics". syslogd écrasera ceci au démarrage.
RES_COL=<un chiffre>, où <un chiffre> désigne une colonne de l'écran à laquelle commencer les étiquettes d'état. La valeur par défaut est 60.
MOVE_TO_COL=<une commande>, où <une commande> déplace le curseur vers $RES_COL. Indique, par défaut, une sortie de séquences ANSI par echo -e.
SETCOLOR_SUCCESS=<une commande>, où <une commande> définit une couleur indiquant le succès. Indique, par défaut, une sortie de séquences ANSI par echo -e, en définissant la couleur sur vert.
SETCOLOR_FAILURE=<une commande>, où <une commande> définit une couleur indiquant l'échec. Indique, par défaut, une sortie de séquences ANSI par echo -e, en définissant la couleur sur rouge.
SETCOLOR_WARNING=<une commande>, où <une commande> définit une couleur indiquant un avertissement. Indique, par défaut, une sortie de séquences ANSI par echo -e, en définissant la couleur sur jaune.
SETCOLOR_NORMAL=<une commande>, où <une commande> définit la couleur sur "normal". Indique, par défaut, une sortie de séquences ANSI par echo -e.
MAGIC_SYSRQ=une réponse, où une réponse est l'une des options suivantes :
yes -- Active la touche magique sysrq.
no -- Désactive la touche magique sysrq et Stop-A (interruption sur une console série) sur SPARC.
PROMPT=une réponse, où une réponse est l'une des valeurs suivantes :
yes -- Active le contrôle de touche pour le mode interactif.
no -- Désactive le contrôle de touche pour le mode interactif.
Le fichier /etc/sysconfig/keyboard contrôle le comportement du clavier. Les valeurs suivantes peuvent être utilisées :
KEYTABLE=fichier, où fichier est le nom d'un fichier de clavier. Par exemple : KEYTABLE="/usr/lib/kbd/keytables/us.map"
KEYBOARD=sun|pc, uniquement utilisé sur SPARC. sun signifie qu'un clavier Sun est connecté à /dev/kbd, pc signifie qu'un clavier PS/2 est connecté à un port PS/2.
Le fichier /etc/sysconfig/network permet de spécifier des informations sur la configuration de réseau souhaitée. Les valeurs suivantes peuvent être utilisées :
NETWORKING=réponse, où réponse est l'une des valeurs suivantes :
yes -- la connexion au réseau doit être configurée.
no -- la connexion au réseau ne doit pas être configurée.
HOSTNAME=nomhôte, où nomhôte doit être le FQDN (Fully Qualified Domain Name), mais peut être le nom d'hôte de votre choix.
![]() | Remarque |
|---|---|
Pour assurer la compatibilité avec des logiciels plus anciens que certaines personnes risqueraient d'installer (tels que trn), le fichier /etc/HOSTNAME doit contenir la même valeur que celle spécifiée ici. |
FORWARD_IPV4==réponse, où réponse est l'une des valeurs suivantes :
yes -- effectuer un transfert IP.
no -- ne pas effectuer de transfert IP.
(L'installation actuelle de Red Hat Linux définit cette valeur sur "no" par défaut [pour la conformité RFC], mais si FORWARD_IPV4 n'est pas défini du tout, le transfert est activé pour la compatibilité avec les fichiers de configuration utilisés sur Red Hat Linux, versions 4.2 et antérieures).
GATEWAY=pa-ip, où pa-ip est l'adresse IP de la passerelle du réseau.
GATEWAYDEV=pa-pér, où pa-pér est le périphérique de passerelle (par exemple, eth0).
NISDOMAIN=nom-dom, où nom-dom est le nom de domaine NIS.
Le fichier /etc/sysconfig/pcmcia est utilisé pour spécifier des informations de configuration de la carte PCMCIA. Les valeurs suivantes peuvent être utilisées :
PCMCIA=réponse, où réponse est l'une des valeurs suivantes :
yes -- le support PCMCIA doit être activé.
no -- le support PCMCIA ne doit pas être activé.
PCIC=type-pcic, où type-pcic est l'une des valeurs suivantes :
i82365 -- l'ordinateur comporte un circuit de support PCMCIA de style i82365.
tcic -- l'ordinateur comporte un circuit de support PCMCIA de style tcic.
PCIC_OPTS=option, où option correspond aux paramètres de synchronisation du pilote de support (i82365 ou tcic).
CORE_OPTS=option, où option est la liste d'options pcmcia_core.
CARDMGR_OPTS=option, où option est la liste d'options pour PCMCIA cardmgr (par exemple, -q, mode silencieux ; -m, recherche des modules de noyau pouvant être chargés dans le répertoire spécifié, etc. ; lisez la page de manuel cardmgr pour plus d'informations).
Le fichier /etc/sysconfig/soundcard est généré par sndconfig et ne doit pas être modifié. Il est utilisé par /etc/rc.d/init.d/sound pour configurer correctement le système. Il permet seulement de déterminer l'entrée de carte du menu à afficher par défaut lors de la prochaine exécution de sndconfig.
Il peut contenir ce qui suit :
CARDTYPE=<une carte>, où <une carte> est vue, par exemple, comme CARDTYPE=SB16.
Les fichiers suivants se trouvent normalement dans /etc/sysconfig/network-scripts :
/etc/sysconfig/network-scripts/ifup
/etc/sysconfig/network-scripts/ifdown
/etc/sysconfig/network-scripts/network-functions
/etc/sysconfig/network-scripts/ifcfg-<interface-name>
/etc/sysconfig/network-scripts/ifcfg-<interface-name>-<clone-name>
/etc/sysconfig/network-scripts/chat-<interface-name>
/etc/sysconfig/network-scripts/dip-<interface-name>
/etc/sysconfig/network-scripts/ifup-post
/etc/sysconfig/network-scripts/ifdhcpc-done
Examinons-les.
Il s'agit de liens symboliques, respectivement vers /sbin/ifup et /sbin/ifdown. Il s'agit des deux seuls scripts de ce répertoire qui doivent être appelés directement ; ces deux scripts appellent tous les autres en fonction des besoins. Ces liens symboliques sont ici uniquement à des fins d'"héritage" ; ils seront probablement supprimés dans les versions futures ; ainsi, seuls /sbin/ifup et /sbin/ifdown devraient être actuellement utilisés.
Ces scripts utilisent normalement un argument : le nom du périphérique (par exemple, " eth0"). Ils sont appelés avec un second argument de "boot" durant la séquence d'amorçage, de sorte que les périphériques qui ne sont pas destinés à être appelés au démarrage (ONBOOT=no, [voir ci-dessous]) peuvent être ignorés.
Ce n'est pas réellement un fichier public. Il contient des fonctions que les scripts utilisent pour ouvrir et fermer des interfaces. Il contient, en particulier, l'essentiel du code pour la prise en charge des configurations d'interface alternatives et la notification de modifications d'interface via netreport.
Le premier fichier définit une interface, tandis que le second contient uniquement les éléments de la définition qui diffèrent dans une interface "clone" (ou alternative). Par exemple, les numéros de réseau peuvent être différents et tout le reste identique, de sorte que seuls les numéros de réseau figureraient dans le fichier clone, tandis que toutes les informations de périphérique figureraient dans le fichier ifcfg de base.
Les éléments pouvant être définis dans un fichier ifcfg dépendent du type d'interface.
Les valeurs suivantes sont communes à tous les fichiers de base :
DEVICE=nom, où nom est le nom du périphérique physique (à l'exception des périphériques PPP attribués de façon dynamique avec le "nom logique").
IPADDR=adr, où adr est l'adresse IP.
NETMASK=masque, où masque est la valeur du masque réseau.
NETWORK=adr, où adr est l'adresse de réseau.
BROADCAST=adr, où adr est l'adresse de diffusion.
GATEWAY=adr, où adr est l'adresse de la passerelle.
ONBOOT=réponse, où réponse est l'une des valeurs suivantes :
yes -- ce périphérique doit être activé au démarrage.
no -- ce périphérique ne doit pas être activé au démarrage.
USERCTL=réponse, où réponse est l'une des valeurs suivantes :
yes -- des utilisateurs non connectés en tant que root sont autorisés à contrôler ce périphérique.
no -- des utilisateurs non connectés en tant que root ne sont pas autorisés à contrôler ce périphérique.
BOOTPROTO=proto, où proto est l'une des valeurs suivantes :
none -- aucun protocole de démarrage ne doit être utilisé.
bootp -- le protocole BOOTP doit être utilisé.
dhcp -- le protocole DHPC doit être utilisé.
Les valeurs suivantes sont communes à tous les PPP et fichiers SLIP :
PERSIST=réponse, où réponse est l'une des valeurs suivantes :
yes -- ce périphérique doit rester actif en permanence, même s'il est désactivé après un raccrochage du modem.
no -- ce périphérique ne doit pas rester actif à tout moment.
MODEMPORT=port, où port est le nom de périphérique du port du modem (par exemple, " /dev/modem").
LINESPEED=baud, où baud est la vitesse de ligne du modem (par exemple, " 115200").
DEFABORT=réponse, où réponse est l'une des valeurs suivantes :
yes -- insérer des chaînes d'abandon par défaut lors de la création/édition du script pour cette interface.
no -- ne pas insérer de chaînes d'abandon par défaut lors de la création/édition du script pour cette interface.
Les valeurs suivantes sont communes à tous les fichiers PPP :
DEFROUTE=réponse, où réponse est l'une des valeurs suivantes :
yes -- définir cette interface comme route par défaut.
no -- ne pas définir cette interface comme route par défaut.
ESCAPECHARS=réponse, où réponse est l'une des valeurs suivantes :
yes -- utiliser l'asyncmap prédéfini.
no -- ne pas utiliser l'asyncmap prédéfini.
HARDFLOWCTL=réponse, où réponse est l'une des valeurs suivantes :
yes -- utiliser le contrôle de flux matériel.
no -- ne pas utiliser le contrôle de flux matériel.
PPPOPTIONS=options, où options est une chaîne d'option arbitraire. Elle est placée en dernière position sur la ligne de commande de manière à pouvoir écraser d'autres options (telles que asyncmap) spécifiées précédemment.
PAPNAME=nom, où nom est utilisé comme partie de "nom $PAPNAME" dans la ligne de commande pppd.
Il faut noter que l'option "remotename" est toujours spécifiée comme nom de périphérique PPP logique, comme " ppp0" (qui pourrait être le périphérique physique ppp1 si un autre périphérique PPP avait été spécifié précédemment...), afin de faciliter la gestion de fichiers PAP/CHAP (des paires nom/mot de passe sont associées au nom de périphérique PPP logique de sorte à pouvoir être gérées ensemble.
En principe, rien ne devrait empêcher les noms de périphérique PPP logiques d'être " worldnet" ou "monfournisseur" au lieu de "ppp0" -- "pppN."
REMIP=adr, où adr est l'adresse IP distante (normalement non spécifiée).
MTU=valeur, où valeur est la valeur à utiliser comme MTU.
MRU=valeur, où valeur est la valeur à utiliser comme MRU.
DISCONNECTTIMEOUT=valeur, où valeur représente le nombre de secondes devant précéder le rétablissement de la connexion après la fin d'une session de connexion réussie.
RETRYTIMEOUT=valeur, où valeur représente le nombre de secondes devant précéder une nouvelle tentative d'établissement d'une connexion à la suite de l'échec d'une première tentative.
Ce fichier est un "chat script" pour connexion PPP ou SLIP destiné à établir la connexion. Pour les périphériques SLIP, un script DIP est écrit à partir du "chat script" ; pour les périphériques PPP, le "chat script" est utilisé directement.
Ce script en écriture seule est créé par netcfg à partir du "chat script". Ne modifiez pas ce fichier. A l'avenir, ce fichier pourrait disparaître et être plutôt créé à la volée à partir du "chat script".
Ce fichier est appelé lorsqu'un périphérique réseau (à l'exception d'un périphérique SLIP) intervient. Il appelle /etc/sysconfig/network-scripts/ifup-routes pour activer les routes statiques dépendant de ce périphérique. Il active des alias pour ce périphérique. Il définit le nom d'hôte si celui-ci n'est pas encore défini et s'il est possible de trouver un nom d'hôte pour l'adresse IP de ce périphérique. Il envoie SIGIO à tout programme ayant demandé une notification d'événements de réseau.
Ce fichier pourrait être étendu pour gérer la configuration des services de noms, appeler des scripts arbitraires et effectuer d'autres opérations, en fonction des besoins.
Ce fichier est appelé par dhcpcd une fois la configuration de DHCP terminée ; il configure /etc/resolv.conf à partir de la version de dhcpcd se trouvant dans /etc/dhcpc/resolv.conf.
Cette section décrit brièvement les éléments internes du processus de démarrage. Elle présente la manière dont l'ordinateur démarre en utilisant SysV init, de même que les différences entre l' init utilisé dans les éditions de Linux plus anciennes et SysV init.
Le programme Init est lancé par le noyau au démarrage. Il est chargé de lancer tous les processus normaux devant être exécutés au démarrage. Ceux-ci comprennent les processus getty qui vous permettent de vous connecter, les démons NFS, les démons FTP et tout ce que vous voulez exécuter au démarrage de l'ordinateur.
SysV init est en passe de devenir la norme dans le monde Linux pour le contrôle du lancement des logiciels au démarrage, car il est plus facile à utiliser et plus puissant et flexible que le programme init (BSD) traditionnel.
SysV init diffère également de BSD init en ce sens que les fichiers de configuration se trouvent dans un sous-répertoire de /etc au lieu d'être directement dans /etc. Dans /etc/rc.d, vous trouverez rc.sysinit et les répertoires suivants :
init.d
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
|
Le répertoire init.d contient une série de scripts. Vous devez disposer d'un script pour chaque service que vous pourriez être amené à lancer au démarrage ou lors de l'accès à un autre niveau d'exécution. Les services comprennent des éléments tels que la connexion au réseau, nfs, sendmail, httpd, etc. Ils n'incluent pas des éléments tels que setserial qui ne doit être exécuté qu'une seule fois, puis quitté. Des éléments de ce type doivent être placés dans rc.local ou rc.serial.
Si vous optez pour rc.local, il doit être dans /etc/rc.d. La plupart des systèmes en incluent un, même s'il ne fait pas grand-chose. Vous pouvez également inclure un fichier rc.serial dans /etc/rc.d pour que le système exécute des opérations spécifiques au port série au démarrage.
La chaîne des événements de présente comme suit :
Le noyau recherche le programme init à plusieurs endroits et exécute le premier trouvé.
init exécute /etc/rc.d/rc.sysinit.
rc.sysinit prend en charge la plupart des processus du chargeur de démarrage, puis exécute 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 géré au niveau de /etc/inittab. Il doit y avoir, au début, une ligne ressemblant à ceci :
id:3:initdefault:
|
A ce stade, vous devez consulter la seconde colonne et voir que le niveau d'exécution par défaut est 3. Si vous le souhaitez, vous pouvez modifier /etc/inittab manuellement. Soyez très prudent lorsque vous modifiez le fichier inittab . En cas de problème, vous pouvez redémarrer et entrer :
LILO boot: linux single
|
Ceci devrait vous permettre de démarrer en mode mono-utilisateur de façon à pouvoir modifier inittab en rétablissant sa valeur antérieure.
A présent, examinons comment le système procède pour exécuter les bons scripts. Si vous entrez ls -l dans rc3.d, le système devrait afficher quelque chose comme :
lrwxrwxrwx 1 root root 17 3:11 S10network -> ../init.d/network
lrwxrwxrwx 1 root root 16 3:11 S30syslog -> ../init.d/syslog
lrwxrwxrwx 1 root root 14 3:32 S40cron -> ../init.d/cron
lrwxrwxrwx 1 root root 14 3:11 S50inet -> ../init.d/inet
lrwxrwxrwx 1 root root 13 3:11 S60nfs -> ../init.d/nfs
lrwxrwxrwx 1 root root 15 3:11 S70nfsfs -> ../init.d/nfsfs
lrwxrwxrwx 1 root root 18 3:11 S90lpd -> ../init.d/lpd.init
lrwxrwxrwx 1 root root 11 3:11 S99local -> ../rc.local
|
Vous remarquerez qu'il n'y a pas de fichiers "réels" dans le répertoire. Il y a seulement un lien vers l'un des scripts se trouvant dans le répertoire init.d. Les liens contiennent également un "S" et un nombre au début. Le "S" indique que le script concerné doit être lancé et un "K" signifierait qu'il doit être arrêté. Le nombre figurant dans le nom du fichier permet de déterminer l'ordre de prise en compte. Init lance tous les services sur la base de l'ordre alphabétique. Vous pouvez dupliquer des nombres, mais cela contribuera seulement à semer la confusion. Il suffit que vous utilisiez un nombre de deux chiffres, assorti d'un "S" ou d'un "K" majuscule selon que vous voulez lancer ou arrêter les services de votre choix.
Comment init lance-t-il et arrête-t-il des services ? C'est simple. Chacun des scripts est écrit pour accepter un argument qui peut être " start" et "stop". Vous pouvez exécuter ces scripts manuellement en entrant une ligne de commande telle que :
/etc/rc.d/init.d/httpd stop |
Pourquoi tous ces niveaux d'exécution ? Certaines personnes veulent disposer d'une solution facile pour configurer des ordinateurs afin d'en faire des machines multitâches. Vous pourriez avoir un niveau d'exécution "serveur" qui exécute uniquement httpd, sendmail, la connexion au réseau, etc. Vous pourriez ensuite avoir un niveau d'exécution "utilisateur" exécutant gdm, la connexion au réseau, etc.
Généralement, Red Hat Linux fonctionne au niveau d'exécution 3 -- mode multi-utilisateurs complet. Les niveaux d'exécution suivants sont définis dans Red Hat Linux :
0 -- Arrêt
1 -- Mode mono-utilisateur
2 -- Mode multi-utilisateurs, sans NFS
3 -- Mode multi-utilisateurs complet
4 -- Non utilisé
5 -- Mode multi-utilisateurs complet (avec écran de connexion X Window)
6 -- Redémarrage
Si votre ordinateur ne démarre pas en raison d'un fichier /etc/inittab défectueux ou ne vous laisse pas vous connecter parce que le fichier /etc/passwd est endommagé ou simplement parce que vous avez oublié votre mot de passe, démarrez en mode mono-utilisateur en entrant linux single à l'invite de démarrage de LILO. Un système très dépouillé démarrera et vous disposerez d'un shell à partir duquel vous pourrez remédier à votre problème.
L'utilitaire chkconfig offre un outil de ligne de commande simple permettant de maintenir la hiérarchie de répertoires /etc/rc.d . Il évite aux administrateurs système d'avoir à manipuler directement les nombreux liens symboliques dans /etc/rc.d.
Vous disposez également de l'utilitaire ntsysv qui offre une interface permettant de déplacer le curseur dans toute la page, par opposition à l'interface de ligne de commande de chkconfig.
Pour plus de détails, reportez-vous aux pages de manuel de chkconfig et ntsysv.
Le fichier /etc/rc.d/rc.local est exécuté au démarrage, après accomplissement de toute autre tâche d'initialisation, et chaque fois que vous modifiez des niveaux d'exécution. Vous pouvez ajouter ici des commandes d'initialisation supplémentaires. Par exemple, il se peut que vous vouliez démarrer des démons supplémentaires ou initialiser une imprimante. En outre, si vous avez besoin d'une configuration de port série, vous pouvez modifier /etc/rc.d/rc.serial qui sera exécuté automatiquement au démarrage.
Le fichier /etc/rc.d/rc.local par défaut crée simplement une jolie bannière de connexion avec votre version de noyau et votre type d'ordinateur.
Pour arrêter Red Hat Linux, entrez la commande shutdown. Pour plus de détails, lisez la page de manuel de shutdown. Les deux utilisations les plus courantes sont :
shutdown -h now
shutdown -r now
|
Chacune de ces commandes arrête correctement le système. Après avoir tout arrêté, l'option -h arrête l'ordinateur et l'option -r le redémarre.
Bien que les commandes reboot et halt soient suffisamment "intelligentes" pour invoquer la commande shutdown si elles sont exécutées tandis que le système est en niveaux d'exécution 1 à 5, ce n'est pas une bonne habitude à prendre que de les utiliser car tous les systèmes de type Linux ne disposent pas de cette fonction.
| Précédent | Sommaire | Suivant |
| Configuration du NFS | Niveau supérieur | Mode de secours |