stopping.html.fr 19.5 KB
Newer Older
powelld's avatar
powelld committed
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Arrt et redmarrage du serveur HTTP Apache - Serveur Apache HTTP Version 2.4</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
<script src="./style/scripts/prettify.min.js" type="text/javascript">
</script>

<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p>
<p class="apache">Serveur Apache HTTP Version 2.4</p>
<img alt="" src="./images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.4</a></div><div id="page-content"><div id="preamble"><h1>Arrt et redmarrage du serveur HTTP Apache</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
<a href="./en/stopping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/stopping.html" hreflang="es" rel="alternate" title="Espaol">&nbsp;es&nbsp;</a> |
<a href="./fr/stopping.html" title="Franais">&nbsp;fr&nbsp;</a> |
<a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Trke">&nbsp;tr&nbsp;</a></p>
</div>

    <p>Ce document couvre l'arrt et le redmarrage du
    serveur HTTP Apache sur
    les systmes Unix et similaires. Les utilisateurs de Windows NT, 2000
    and XP doivent consulter
    <a href="platform/windows.html#winsvc">Excuter httpd en tant que
    service</a> et les utilisateurs de Windows 9x et ME doivent consulter
    <a href="platform/windows.html#wincons">Excuter httpd comme une
    application de type console</a> pour plus d'informations sur le contrle
    de httpd  partir de ces plateformes.</p>
</div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">Introduction</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#term">Arrter immdiatement</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#graceful">Redmarrage en douceur</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#hup">Redmarrer immdiatement</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#gracefulstop">Arrt en douceur</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><code class="program"><a href="./programs/httpd.html">httpd</a></code></li><li><code class="program"><a href="./programs/apachectl.html">apachectl</a></code></li><li><a href="invoking.html">Dmarrage</a></li><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="introduction" id="introduction">Introduction</a></h2>

    <p>Afin d'arrter ou redmarrer le serveur HTTP Apache, vous devez envoyer un signal aux
    processus <code class="program"><a href="./programs/httpd.html">httpd</a></code> en cours d'excution.  Les signaux
    peuvent tre envoys de deux manires. La
    premire mthode consiste 
    utiliser la commande unix <code>kill</code>
    pour envoyer directement des signaux aux processus. Vous pouvez remarquer
    que plusieurs processus <code class="program"><a href="./programs/httpd.html">httpd</a></code> s'excutent sur votre
    systme, mais il vous suffit d'envoyer les signaux au processus parent,
    dont le PID est enregistr dans le fichier prcis par la directive
    <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>. Autrement dit, vous
    n'aurez jamais besoin d'envoyer des signaux  aucun des
    processus enfants, mais seulement au processus parent. Quatre types
    de signaux peuvent tre envoys au processus parent :
    <code><a href="#term">TERM</a></code>,
    <code><a href="#graceful">USR1</a></code>,
    <code><a href="#hup">HUP</a></code>, et
    <code><a href="#gracefulstop">WINCH</a></code>, qui
    seront dcrit plus loin.</p>

    <p>Pour envoyer un signal au processus parent, vous devez entrer une commande
    du style :</p>

<div class="example"><p><code>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</code></p></div>

    <p>La seconde mthode permettant d'envoyer des signaux aux processus
    <code class="program"><a href="./programs/httpd.html">httpd</a></code>
    consiste  utiliser les options <code>stop</code>,
    <code>restart</code>, <code>graceful</code> et
    <code>graceful-stop</code> du commutateur <code>-k</code> de la ligne
    de commande comme dcrit ci-dessous.  Ce sont des arguments du binaire
    <code class="program"><a href="./programs/httpd.html">httpd</a></code>, mais il est recommand de les utiliser
    avec le script de contrle <code class="program"><a href="./programs/apachectl.html">apachectl</a></code>, qui se
    chargera de les passer  <code class="program"><a href="./programs/httpd.html">httpd</a></code>.</p>

    <p>Aprs avoir envoy un signal  <code class="program"><a href="./programs/httpd.html">httpd</a></code>, vous pouvez
    suivre le cours de son action en entrant :</p>

<div class="example"><p><code>tail -f /usr/local/apache2/logs/error_log</code></p></div>

    <p>Adaptez ces exemples en fonction de la dfinition de vos directives
    <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code> et
    <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="term" id="term">Arrter immdiatement</a></h2>

<dl><dt>Signal: TERM</dt>
<dd><code>apachectl -k stop</code></dd>
</dl>

    <p>A la rception du signal <code>TERM</code> ou <code>stop</code>,
    le processus parent tente immdiatement
    de tuer tous ses processus enfants. Cela peut durer plusieurs secondes.
    Aprs cela, le processus parent lui-mme se termine. Toutes les requtes
    en cours sont termines, et plus aucune autre n'est traite.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="graceful" id="graceful">Redmarrage en douceur</a></h2>

<dl><dt>Signal: USR1</dt>
<dd><code>apachectl -k graceful</code></dd>
</dl>

    <p>A la rception du signal <code>USR1</code> ou
    <code>graceful</code>, le
    processus parent envoie aux processus enfants
    <em>l'ordre</em> de se terminer une fois leur requte courante
    traite (ou de se terminer immdiatement s'ils n'ont plus rien  traiter).
    Le processus parent relit ses fichiers de configuration et
    rouvre ses fichiers de log. Chaque fois qu'un enfant s'teint, le
    processus parent le remplace par un processus
    enfant de la nouvelle <em>gnration</em> de la
    configuration, et celui-ci commence immdiatement  traiter les
    nouvelles requtes.</p>

    <p>Ce code est conu pour toujours respecter la directive de contrle
    de processus des modules MPMs, afin que les nombres de processus et de
    threads
    disponibles pour traiter les demandes des clients soient maintenus 
    des valeurs appropries tout au long du processus de dmarrage.
    En outre, il respecte la directive
    <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> de la manire
    suivante : si aprs une seconde au moins <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> nouveaux processus
    enfants n'ont pas t crs, un nombre suffisant de processus
    supplmentaires est cr pour combler le manque. Ainsi le code
    tente de maintenir  la fois le nombre appropri de processus enfants
    en fonction de la charge du serveur, et le nombre de processus dfini par la
    directive <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>.</p>

    <p>Les utilisateurs du module <code class="module"><a href="./mod/mod_status.html">mod_status</a></code>
    noteront que les statistiques du serveur ne sont <strong>pas</strong>
    remises  zro quand un signal <code>USR1</code> est envoy. Le code
    a t conu  la fois pour minimiser la dure durant laquelle le
    serveur ne peut pas traiter de nouvelles requtes (elle sont mises en
    file d'attente par le systme d'exploitation, et ne sont ainsi jamais
    perdues) et pour respecter vos paramtres de personnalisation.
    Pour y parvenir, il doit conserver le
    <em>tableau</em> utilis pour garder la trace de tous les processus
    enfants au cours des diffrentes gnrations.</p>

    <p>Dans son tat des processus,
    le module status utilise aussi un caractre <code>G</code> afin d'indiquer
    quels processus enfants ont encore des traitements de requtes en cours
    dbuts avant que l'ordre graceful restart ne soit donn.</p>

    <p>Pour l'instant, il est impossible pour un script de rotation
    des logs utilisant
    <code>USR1</code> de savoir de manire certaine si tous les processus
    enfants inscrivant des traces de pr-redmarrage sont termins.
    Nous vous suggrons d'attendre un dlai suffisant aprs l'envoi du
    signal <code>USR1</code>
    avant de faire quoi que ce soit avec les anciens logs. Par exemple,
    si la plupart de vos traitements durent moins de 10 minutes pour des
    utilisateurs empruntant des liaisons  faible bande passante, alors vous
    devriez attendre 15 minutes avant de faire quoi que ce soit
    avec les anciens logs.</p>

    <div class="note">
    <p>Lorsque vous initiez un redmarrage, une vrification de
    la syntaxe est tout d'abord effectue, afin de s'assurer qu'il n'y a
    pas d'erreurs dans les fichiers de configuration. Si votre fichier de
    configuration comporte des erreurs de syntaxe, vous recevrez un message
    d'erreur les concernant, et le serveur refusera de redmarrer. Ceci
    permet d'viter la situation o un serveur a
    t arrt et ne peut plus redmarrer,
    et o vous vous retrouvez avec un serveur hors-service.</p>

    <p>Ceci ne garantit pas encore que le serveur va redmarrer
    correctement. Pour vrifier la smantique des fichiers de configuration
    en plus de leur syntaxe, vous pouvez essayer de dmarrer
    <code class="program"><a href="./programs/httpd.html">httpd</a></code> sous un utilisateur non root.
    S'il n'y a pas d'erreur, il tentera d'ouvrir ses sockets et ses fichiers
    de log et chouera car il n'a pas les privilges root (ou parce que
    l'instance actuelle de
    <code class="program"><a href="./programs/httpd.html">httpd</a></code> est dj associe  ces ports). S'il choue
    pour toute autre raison, il y a probablement une erreur dans le
    fichier de configuration et celle-ci doit tre corrige avant de lancer
    le redmarrage en douceur.</p></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="hup" id="hup">Redmarrer immdiatement</a></h2>

<dl><dt>Signal: HUP</dt>
<dd><code>apachectl -k restart</code></dd>
</dl>

    <p>A la rception du signal <code>HUP</code> ou
    <code>restart</code>, le
    processus parent tue ses processus enfants comme pour le signal
    <code>TERM</code>, mais le processus parent ne se termine pas.
    Il relit ses fichiers de configuration, et rouvre ses fichiers de log.
    Puis il donne naissance  un nouveau jeu de processus enfants
    et continue de traiter les requtes.</p>

    <p>Les utilisateurs du module <code class="module"><a href="./mod/mod_status.html">mod_status</a></code>
    noteront que les statistiques du serveur sont remises  zro quand un
    signal <code>HUP</code> est envoy.</p>

<div class="note">Comme dans le cas d'un redmarrage "graceful", une
vrification de la syntaxe est effectue avant que le
redmarrage ne soit tent. Si votre fichier de configuration comporte
des erreurs de syntaxe, le redmarrage ne sera pas effectu, et
vous recevrez un message concernant ces erreurs.</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="gracefulstop" id="gracefulstop">Arrt en douceur</a></h2>

<dl><dt>Signal : WINCH</dt>
<dd><code>apachectl -k graceful-stop</code></dd>
</dl>

    <p>A la rception du signal <code>WINCH</code> ou
    <code>graceful-stop</code>, le
    processus parent <em>ordonne</em>  ses processus enfants
    de s'arrter aprs le traitement de leur requte en cours
    (ou de s'arrter immdiatement s'ils n'ont plus de requte  traiter).
    Le processus parent va alors supprimer son fichier
    <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> et cesser l'coute
    de tous ses ports. Le processus parent va continuer  s'excuter,
    et va surveiller les processus enfants
    qui ont encore des requtes  traiter. Lorsque tous les processus enfants
    ont termin leurs traitements et se sont arrts ou lorsque le dlai
    spcifi par la directive <code class="directive"><a href="./mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code> a t atteint,
    le processus parent s'arrtera  son tour.  Si ce dlai est atteint,
    tout processus enfant encore en cours d'excution se verra envoyer
    le signal <code>TERM</code>
    afin de le forcer  s'arrter.</p>

    <p>L'envoi du signal <code>TERM</code> va arrter immdiatement
    les processus parent et enfants en tat "graceful". Cependant,
    comme le fichier <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>
    aura t supprim, vous ne pourrez pas utiliser
    <code>apachectl</code> ou <code>httpd</code> pour envoyer ce signal.</p>

    <div class="note"><p>Le signal <code>graceful-stop</code> vous permet d'excuter
    simultanment plusieurs instances de <code class="program"><a href="./programs/httpd.html">httpd</a></code>
    avec des configurations identiques. Ceci s'avre une fonctionnalit
    puissante quand vous effectuez des mises  jour "en douceur"
    de httpd ; cependant, cela peut aussi causer des blocages fatals et des
    situations de comptition (race conditions)
    avec certaines configurations.</p>

    <p>On a pris soin de s'assurer que les fichiers sur disque
    comme les fichiers verrou (<code class="directive"><a href="./mod/core.html#mutex">Mutex</a></code>) et les fichiers socket Unix
    (<code class="directive"><a href="./mod/mod_cgid.html#scriptsock">ScriptSock</a></code>) contiennent le PID
    du serveur, et coexistent sans problme. Cependant, si une directive de
    configuration, un module tiers ou une CGI rsidente utilise un autre
    verrou ou fichier d'tat sur disque, il faut prendre soin de s'assurer
    que chaque instance de <code class="program"><a href="./programs/httpd.html">httpd</a></code> qui s'excute
    n'crase pas les fichiers des autres instances.</p>

    <p>Vous devez aussi prendre garde aux autres situations de comptition,
    comme l'enregistrement des logs avec un transfert de ceux-ci
    via un pipe vers le programme <code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code>. Plusieurs instances
    du programme <code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code> qui tentent d'effectuer
    une rotation des mmes fichiers de log en mme temps peuvent dtruire
    mutuellement leurs propres fichiers de log.</p></div>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
<a href="./en/stopping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/stopping.html" hreflang="es" rel="alternate" title="Espaol">&nbsp;es&nbsp;</a> |
<a href="./fr/stopping.html" title="Franais">&nbsp;fr&nbsp;</a> |
<a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Trke">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/stopping.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Autoris sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>