Code Search for Developers
 
 
  

019.html from Gulus at Krugle


Show 019.html syntax highlighted

<HTML><HEAD><TITLE>Linux-Mandrake: Guide de l'utilisateur et Manuel de référence</TITLE>
<LINK REV=MADE HREF="mailto:info@mandrakesoft.com"></HEAD>
<BODY BGCOLOR="#ffffff"><center><font size="+5"><STRONG><table border="0"><tr><td><STRONG>Linux-Mandrake</STRONG>:</td></tr><tr><td>Guide de l'utilisateur</td></tr><tr><td>et Manuel de référence</td></tr></table></STRONG></font>

<p><font size="+2"><STRONG><table border="0"><tr><td><STRONG>MandrakeSoft</STRONG></td></tr></table></STRONG></font>

<p><STRONG><table border="0"><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td>Janvier 2000</td></tr><tr><td><CODE>http://www.linux-mandrake.com</CODE></td></tr><tr><td></td></tr></table></STRONG></center>
<hr><a href="020.html">Suivant&nbsp;: Systèmes de fichiers et points de montage</a><br><a href="018.html">Précédent&nbsp;: <STRONG>Auto Install</STRONG></a><br><a href="../">Retour</a><br><hr><a href="000.html#toc"><font size="-1">(Retour à la table des matières)</font></a>


<H1><font size="+1"><a name="224">Chapitre 9&nbsp;: Les fichiers de démarrage: init «&nbsp;<STRONG>System V</STRONG>&nbsp;»</a></font></H1><hr><p>Dans la tradition <STRONG>Unix</STRONG>, il existe deux schémas de démarrage du
système: le schéma <EM>BSD</EM> et le schéma «&nbsp;<STRONG>System V</STRONG>&nbsp;», tous les
deux nommés d'après le système <STRONG>Unix</STRONG> qui les a implémentés pour
la première fois (resp. <EM>Berkeley Software
Distribution</EM> («&nbsp;distribution de logiciels de Berkeley&nbsp;» et
<STRONG>AT&T Unix System V</STRONG>). Le schéma <EM>BSD</EM> est le plus
simple, mais le schéma <STRONG>System V</STRONG>, s'il est moins facile à comprendre
(c'est le rôle de ce chapitre que de vous le faire comprendre), est
nettement plus souple d'utilisation.


<H1><a name="225">Au début fut <CODE>init</CODE></a></H1>

<p>Quand le système démarre, après que le noyau ait tout configuré et monté
la racine du système de fichiers, il exécute le programme
<CODE>/sbin/init</CODE><a name="bodynote22" href="026.html#note22">[22]</a>. <CODE>init</CODE> est le père de
tous les processus du système, et il est chargé d'amener le système au
<STRONG>niveau d'exécution</STRONG> (<STRONG><EM>runlevel</EM></STRONG>) voulu. Nous
reviendrons sur les niveaux d'exécution dans la section suivante.

<p>Le fichier de configuration d'<CODE>init</CODE> est <CODE>/etc/inittab</CODE>. Ce
fichier possède sa propre page de manuel (<CODE>man inittab</CODE>), mais
nous ne décrirons ici que quelques-unes des directives.

<p>La première ligne qui doit attirer l'attention est celle-ci:

<p><CODE>si::sysinit:/etc/rc.d/rc.sysinit</CODE>

<p>Cette directive dit à <CODE>init</CODE> que
<CODE>/etc/rc.d/rc.sysinit</CODE> doit être exécuté à l'initialisation du
système avant toute autre chose. Pour déterminer le niveau d'exécution
par défaut, <CODE>init</CODE> recherche ensuite la ligne contenant l'action
<CODE>initdefault</CODE>:

<p><CODE>id:5:initdefault:</CODE>

<p>En l'occurrence, donc, <CODE>init</CODE> sait que le niveau d'exécution par
défaut est 5. Il sait également que pour entrer dans le niveau 5, il lui
faudra exécuter la commande suivante:

<p><CODE>l5:5:wait:/etc/rc.d/rc 5</CODE>

<p>Vous constatez que la syntaxe pour chacun des niveaux d'exécution est
similaire.

<p><CODE>init</CODE> est également chargé de relancer (<CODE>respawn</CODE>)
certains programmes que lui seul est en mesure de relancer. C'est le
cas, par exemple, de tous les programmes de connexion qui tournent sur
chacun des 6 terminaux virtuels<a name="bodynote23" href="026.html#note23">[23]</a>. Pour la deuxième console virtuelle, cela donne:

<p><CODE>2:2345:respawn:/sbin/mingetty tty2</CODE>


<H1><a name="226">Les niveaux d'exécution</a></H1>

<p>Tous les fichiers concernant le démarrage du système se trouvent dans le
répertoire <CODE>/etc/rc.d</CODE>. Voici la liste des fichiers:

<p><font size="-1"><PRE>
$ 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/
</PRE></font>

<p>En premier lieu, comme nous l'avons vu, le fichier <CODE>rc.sysinit</CODE>
est exécuté.  C'est ce fichier 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.

<p>Puis le script <CODE>rc</CODE> 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 <CODE>&lt;x&gt;</CODE> défini, il doit
exister un répertoire correspondant <CODE>rc&lt;x&gt;.d</CODE>. Dans une
installation typique de <STRONG>Linux-Mandrake</STRONG>, vous pouvez donc voir que 6
niveaux d'exécution sont ainsi définis:


<ul><li><STRONG>0</STRONG>: Arrêt complet de la machine;
<li><STRONG>1</STRONG>: Mode <STRONG>monoutilisateur</STRONG>; à utiliser en cas de gros pépin!
<li><STRONG>2</STRONG>: Mode <STRONG>multi-utilisateur</STRONG>, sans réseau;
<li><STRONG>3</STRONG>: Mode multiutilisateur, avec réseau;
<li><STRONG>4</STRONG>: Inutilisé;
<li><STRONG>5</STRONG>: Comme 3, mais avec le lancement de l'interface de login
graphique;
<li><STRONG>6</STRONG>: Redémarrage.</ul>

<p>Intéressons-nous par exemple au contenu du répertoire <CODE>rc5.d</CODE>:

<p><font size="-4"><PRE>
$ 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@
</PRE></font>

<p>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

<p><CODE>&lt;S|K&gt;&lt;ordre&gt;&lt;nom_du_service&gt;</CODE>

<p>Le <CODE>S</CODE>
signifie <EM>Start</EM>, «&nbsp;démarrer&nbsp;» le
service, et <CODE>K</CODE> signifie <EM>Kill</EM>,
«&nbsp;arrêter&nbsp;» 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,
l'ordre alphabétique prévaut. On peut voir également que chacun de ces
liens symboliques pointe vers des scripts situés dans
<CODE>/etc/rc.d/init.d</CODE> (à l'exception de <CODE>local</CODE>), scripts qui
sont chargés de contrôler un service bien particulier.

<p>Quand le système entre dans un niveau d'exécution donné, il exécute
d'abord les liens <CODE>K</CODE> dans l'ordre: <CODE>rc</CODE> regarde où
pointe le lien, puis appelle le script correspondant avec le seul
argument <CODE>stop</CODE>. Puis il exécute les scripts <CODE>S</CODE>,
toujours selon la même méthode, mis à part que le script est appelé avec
l'argument <CODE>start</CODE>.

<p>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
<CODE>K15postgresql</CODE>, c'est-à-dire
<CODE>/etc/rc.d/init.d/postgresql stop</CODE>. Puis <CODE>K20nfs</CODE>, puis
<CODE>K20rstatd</CODE>, jusqu'au dernier; ensuite, il exécute tous les
scripts <CODE>S</CODE>: <CODE>S05ampd</CODE> en premier lieu, qui invoque donc
<CODE>/etc/rc.d/init.d/apmd start</CODE>, et ainsi de suite.

<p>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
<CODE>tksysv</CODE> et <CODE>chkconfig</CODE>. Le premier est un programme
graphique).
<hr><a href="020.html">Suivant&nbsp;: Systèmes de fichiers et points de montage</a><br><a href="018.html">Précédent&nbsp;: <STRONG>Auto Install</STRONG></a><br><a href="../">Retour</a><br><hr>Copyright © 2000 <a href="http://www.mandrakesoft.com/">MandrakeSoft</a></BODY></HTML>



See more files for this project here

Gulus

Groupe d\'Utilisateurs de Linux de l\'Universit? de Sherbrooke. http://www.gulus.org/

Project homepage: http://sourceforge.net/projects/gulus
Programming language(s): PHP,Shell Script
License: other

  images/
    LMDK520x200.gif
    aftermount.gif
    beforemount.gif
    console2.gif
    emacs_1.gif
    emacs_2.gif
    emacs_3.gif
    kde_app_add.gif
    kde_app_app.gif
    kde_app_exec.gif
    kde_apps_list.gif
    kde_controlcenter.gif
    kde_desk.gif
    kde_desk_conf1.gif
    kde_disknav.gif
    kde_menu_K.gif
    kde_mime_edit.gif
    kde_mime_edit2.gif
    kde_mime_jpeg.gif
    kde_mimetypelist.gif
    kde_openwith.gif
    kde_openwith_sample.gif
    kde_pager.gif
    kde_screensavercfg.gif
    kde_stylecfg.gif
    kdm2.gif
    kfm_ftp.gif
    kfm_icon_home.gif
    kfm_menu_display.gif
    kfm_navig_conf.gif
    kfm_sample_window.gif
    kfm_url_http.gif
    kfm_web.gif
    konsole.gif
    kpackage_all.gif
    kpackage_info.gif
    kppp_compte.gif
    kppp_main.gif
    kppp_start.gif
    lothar.gif
    lothar_ethercfg.gif
    lothar_sndcfg.gif
    netconf_ppp.gif
    passwd_err.gif
    reseau.gif
    samba_swat.gif
    samba_swat_auth.gif
    tinst_authconf.gif
    tinst_bootdsk.gif
    tinst_fmt_ext2.gif
    tinst_fmt_swap.gif
    tinst_hd_dummy.gif
    tinst_hd_mnt.gif
    tinst_hd_slash.gif
    tinst_insclass.gif
    tinst_intro.gif
    tinst_iou.gif
    tinst_keyb.gif
    tinst_lang.gif
    tinst_lilo.gif
    tinst_lilo_options.gif
    tinst_media.gif
    tinst_mouse_detect.gif
    tinst_mouse_type.gif
    tinst_net_ipdns.gif
    tinst_net_ipstatic.gif
    tinst_net_iptype.gif
    tinst_pack_indiv.gif
    tinst_packs.gif
    tinst_pre.gif
    tinst_printer.gif
    tinst_rootpass.gif
    tinst_scsi.gif
    tinst_scsi_pilot.gif
    tinst_services.gif
    tinst_timezone.gif
    tinst_useradd.gif
    tinst_x_monitor.gif
    top.gif
    user_add.gif
    userconf.gif
    vi_1.gif
    vi_2.gif
    vi_3.gif
    xkill.gif
  000.html
  001.html
  002.html
  003.html
  004.html
  005.html
  006.html
  007.html
  008.html
  009.html
  010.html
  011.html
  012.html
  013.html
  014.html
  015.html
  016.html
  017.html
  018.html
  019.html
  020.html
  021.html
  022.html
  023.html
  024.html
  025.html
  026.html
  index.html