<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Arr&ecirc;t et red&eacute;marrage du serveur HTTP Apache - Serveur HTTP Apache 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">
</script>

<link href="./images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="./images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.4</a></div><div id="page-content"><div id="preamble"><h1>Arr&ecirc;t et red&eacute;marrage du serveur HTTP Apache</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<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="Espa&ntilde;ol">&nbsp;es&nbsp;</a> |
<a href="./fr/stopping.html" title="Fran&ccedil;ais">&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="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>

    <p>Ce document couvre l'arr&ecirc;t et le red&eacute;marrage du
    serveur HTTP Apache sur
    les syst&egrave;mes Unix et similaires. Les utilisateurs de Windows NT, 2000
    and XP doivent consulter
    <a href="platform/windows.html#winsvc">Ex&eacute;cuter httpd en tant que
    service</a> et les utilisateurs de Windows 9x et ME doivent consulter
    <a href="platform/windows.html#wincons">Ex&eacute;cuter httpd comme une
    application de type console</a> pour plus d'informations sur le contr&ocirc;le
    de httpd &agrave; partir de ces plateformes.</p>
</div>
<div id="quickview"><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">Arr&ecirc;ter imm&eacute;diatement</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#graceful">Red&eacute;marrage en douceur</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#hup">Red&eacute;marrer imm&eacute;diatement</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#gracefulstop">Arr&ecirc;t 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">D&eacute;marrage</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="introduction">Introduction <a title="Lien permanent" href="#introduction" class="permalink">&para;</a></h2>

    <p>Afin d'arr&ecirc;ter ou red&eacute;marrer 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'ex&eacute;cution.  Les signaux
    peuvent &ecirc;tre envoy&eacute;s de deux mani&egrave;res. La
    premi&egrave;re m&eacute;thode consiste &agrave;
    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'ex&eacute;cutent sur votre
    syst&egrave;me, mais il vous suffit d'envoyer les signaux au processus parent,
    dont le PID est enregistr&eacute; dans le fichier pr&eacute;cis&eacute; 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 &agrave; aucun des
    processus enfants, mais seulement au processus parent. Quatre types
    de signaux peuvent &ecirc;tre envoy&eacute;s 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 d&eacute;crit 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 m&eacute;thode permettant d'envoyer des signaux aux processus
    <code class="program"><a href="./programs/httpd.html">httpd</a></code>
    consiste &agrave; 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 d&eacute;crit ci-dessous.  Ce sont des arguments du binaire
    <code class="program"><a href="./programs/httpd.html">httpd</a></code>, mais il est recommand&eacute; de les utiliser
    avec le script de contr&ocirc;le <code class="program"><a href="./programs/apachectl.html">apachectl</a></code>, qui se
    chargera de les passer &agrave; <code class="program"><a href="./programs/httpd.html">httpd</a></code>.</p>

    <p>Apr&egrave;s avoir envoy&eacute; un signal &agrave; <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 d&eacute;finition 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 id="term">Arr&ecirc;ter imm&eacute;diatement <a title="Lien permanent" href="#term" class="permalink">&para;</a></h2>

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

    <p>A la r&eacute;ception du signal <code>TERM</code> ou <code>stop</code>,
    le processus parent tente imm&eacute;diatement
    de tuer tous ses processus enfants. Cela peut durer plusieurs secondes.
    Apr&egrave;s cela, le processus parent lui-m&ecirc;me se termine. Toutes les requ&ecirc;tes
    en cours sont termin&eacute;es, et plus aucune autre n'est trait&eacute;e.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="graceful">Red&eacute;marrage en douceur <a title="Lien permanent" href="#graceful" class="permalink">&para;</a></h2>

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

    <p>A la r&eacute;ception 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 requ&ecirc;te courante
    trait&eacute;e (ou de se terminer imm&eacute;diatement s'ils n'ont plus rien &agrave; traiter).
    Le processus parent relit ses fichiers de configuration et
    r&eacute;ouvre ses fichiers de log. Chaque fois qu'un enfant s'&eacute;teint, le
    processus parent le remplace par un processus
    enfant de la nouvelle <em>g&eacute;n&eacute;ration</em> de la
    configuration, et celui-ci commence imm&eacute;diatement &agrave; traiter les
    nouvelles requ&ecirc;tes.</p>

    <p>Ce code est con&ccedil;u pour toujours respecter la directive de contr&ocirc;le
    de processus des modules MPMs, afin que les nombres de processus et de
    threads
    disponibles pour traiter les demandes des clients soient maintenus &agrave;
    des valeurs appropri&eacute;es tout au long du processus de d&eacute;marrage.
    En outre, il respecte la directive
    <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> de la mani&egrave;re
    suivante : si apr&egrave;s une seconde au moins <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> nouveaux processus
    enfants n'ont pas &eacute;t&eacute; cr&eacute;&eacute;s, un nombre suffisant de processus
    suppl&eacute;mentaires est cr&eacute;&eacute; pour combler le manque. Ainsi le code
    tente de maintenir &agrave; la fois le nombre appropri&eacute; de processus enfants
    en fonction de la charge du serveur, et le nombre de processus d&eacute;fini 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 &agrave; z&eacute;ro quand un signal <code>USR1</code> est envoy&eacute;. Le code
    a &eacute;t&eacute; con&ccedil;u &agrave; la fois pour minimiser la dur&eacute;e durant laquelle le
    serveur ne peut pas traiter de nouvelles requ&ecirc;tes (elle sont mises en
    file d'attente par le syst&egrave;me d'exploitation, et ne sont ainsi jamais
    perdues) et pour respecter vos param&egrave;tres de personnalisation.
    Pour y parvenir, il doit conserver le
    <em>tableau</em> utilis&eacute; pour garder la trace de tous les processus
    enfants au cours des diff&eacute;rentes g&eacute;n&eacute;rations.</p>

    <p>Dans son &eacute;tat des processus,
    le module status utilise aussi un caract&egrave;re <code>G</code> afin d'indiquer
    quels processus enfants ont encore des traitements de requ&ecirc;tes en cours
    d&eacute;but&eacute;s avant que l'ordre graceful restart ne soit donn&eacute;.</p>

    <p>Pour l'instant, il est impossible pour un script de rotation
    des logs utilisant
    <code>USR1</code> de savoir de mani&egrave;re certaine si tous les processus
    enfants inscrivant des traces de pr&eacute;-red&eacute;marrage sont termin&eacute;s.
    Nous vous sugg&eacute;rons d'attendre un d&eacute;lai suffisant apr&egrave;s 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 &agrave; 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 red&eacute;marrage, une v&eacute;rification de
    la syntaxe est tout d'abord effectu&eacute;e, 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 red&eacute;marrer. Ceci
    permet d'&eacute;viter la situation o&ugrave; un serveur a
    &eacute;t&eacute; arr&ecirc;t&eacute; et ne peut plus red&eacute;marrer,
    et o&ugrave; vous vous retrouvez avec un serveur hors-service.</p>

    <p>Ceci ne garantit pas encore que le serveur va red&eacute;marrer
    correctement. Pour v&eacute;rifier la s&eacute;mantique des fichiers de configuration
    en plus de leur syntaxe, vous pouvez essayer de d&eacute;marrer
    <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 &eacute;chouera car il n'a pas les privil&egrave;ges root (ou parce que
    l'instance actuelle de
    <code class="program"><a href="./programs/httpd.html">httpd</a></code> est d&eacute;j&agrave; associ&eacute;e &agrave; ces ports). S'il &eacute;choue
    pour toute autre raison, il y a probablement une erreur dans le
    fichier de configuration et celle-ci doit &ecirc;tre corrig&eacute;e avant de lancer
    le red&eacute;marrage 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 id="hup">Red&eacute;marrer imm&eacute;diatement <a title="Lien permanent" href="#hup" class="permalink">&para;</a></h2>

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

    <p>A la r&eacute;ception 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 r&eacute;ouvre ses fichiers de log.
    Puis il donne naissance &agrave; un nouveau jeu de processus enfants
    et continue de traiter les requ&ecirc;tes.</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 &agrave; z&eacute;ro quand un
    signal <code>HUP</code> est envoy&eacute;.</p>

<div class="note">Comme dans le cas d'un red&eacute;marrage "graceful", une
v&eacute;rification de la syntaxe est effectu&eacute;e avant que le
red&eacute;marrage ne soit tent&eacute;. Si votre fichier de configuration comporte
des erreurs de syntaxe, le red&eacute;marrage ne sera pas effectu&eacute;, 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 id="gracefulstop">Arr&ecirc;t en douceur <a title="Lien permanent" href="#gracefulstop" class="permalink">&para;</a></h2>

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

    <p>A la r&eacute;ception du signal <code>WINCH</code> ou
    <code>graceful-stop</code>, le
    processus parent <em>ordonne</em> &agrave; ses processus enfants
    de s'arr&ecirc;ter apr&egrave;s le traitement de leur requ&ecirc;te en cours
    (ou de s'arr&ecirc;ter imm&eacute;diatement s'ils n'ont plus de requ&ecirc;te &agrave; 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'&eacute;coute
    de tous ses ports. Le processus parent va continuer &agrave; s'ex&eacute;cuter,
    et va surveiller les processus enfants
    qui ont encore des requ&ecirc;tes &agrave; traiter. Lorsque tous les processus enfants
    ont termin&eacute; leurs traitements et se sont arr&ecirc;t&eacute;s ou lorsque le d&eacute;lai
    sp&eacute;cifi&eacute; par la directive <code class="directive"><a href="./mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code> a &eacute;t&eacute; atteint,
    le processus parent s'arr&ecirc;tera &agrave; son tour.  Si ce d&eacute;lai est atteint,
    tout processus enfant encore en cours d'ex&eacute;cution se verra envoyer
    le signal <code>TERM</code>
    afin de le forcer &agrave; s'arr&ecirc;ter.</p>

    <p>L'envoi du signal <code>TERM</code> va arr&ecirc;ter imm&eacute;diatement
    les processus parent et enfants en &eacute;tat "graceful". Cependant,
    comme le fichier <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>
    aura &eacute;t&eacute; supprim&eacute;, 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'ex&eacute;cuter
    simultan&eacute;ment plusieurs instances de <code class="program"><a href="./programs/httpd.html">httpd</a></code>
    avec des configurations identiques. Ceci s'av&egrave;re une fonctionnalit&eacute;
    puissante quand vous effectuez des mises &agrave; jour "en douceur"
    de httpd ; cependant, cela peut aussi causer des blocages fatals et des
    situations de comp&eacute;tition (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 probl&egrave;me. Cependant, si une directive de
    configuration, un module tiers ou une CGI r&eacute;sidente utilise un autre
    verrou ou fichier d'&eacute;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'ex&eacute;cute
    n'&eacute;crase pas les fichiers des autres instances.</p>

    <p>Vous devez aussi prendre garde aux autres situations de comp&eacute;tition,
    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 m&ecirc;mes fichiers de log en m&ecirc;me temps peuvent d&eacute;truire
    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="Espa&ntilde;ol">&nbsp;es&nbsp;</a> |
<a href="./fr/stopping.html" title="Fran&ccedil;ais">&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="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://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/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>