httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jfcl...@apache.org
Subject svn commit: r566532 - in /httpd/httpd/trunk/docs/manual: stopping.html.fr stopping.xml.fr
Date Thu, 16 Aug 2007 08:06:58 GMT
Author: jfclere
Date: Thu Aug 16 01:06:54 2007
New Revision: 566532

URL: http://svn.apache.org/viewvc?view=rev&rev=566532
Log:
Translation submitted by Vincent Deffontaines.

Added:
    httpd/httpd/trunk/docs/manual/stopping.html.fr
    httpd/httpd/trunk/docs/manual/stopping.xml.fr

Added: httpd/httpd/trunk/docs/manual/stopping.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/stopping.html.fr?view=auto&rev=566532
==============================================================================
--- httpd/httpd/trunk/docs/manual/stopping.html.fr (added)
+++ httpd/httpd/trunk/docs/manual/stopping.html.fr Thu Aug 16 01:06:54 2007
@@ -0,0 +1,275 @@
+<?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><!--
+        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+              This file is generated from xml source: DO NOT EDIT
+        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+      -->
+<title>Arrêt et redémarrage - Serveur Apache HTTP</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 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="./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.3</p>
+<img alt="" src="./images/feather.gif" /></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.3</a></div><div id="page-content"><div
id="preamble"><h1>Arrêt et redémarrage</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="Español">&nbsp;es&nbsp;</a>
|
+<a href="./fr/stopping.html" title="Franç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></p>
+</div>
+
+    <p>Ce document couvre l'arrêt et le redémarrage d'Apache sur
+    les systèmes Unix et similaires. Les utilisateurs de Windows NT, 2000
+    and XP doivent consulter
+    <a href="platform/windows.html#winsvc">Exécuter Apache en tant que
+    service</a> et les utilisateurs de Windows 9x et ME doivent consulter
+    <a href="platform/windows.html#wincons">Exécuter Apache comme une
+    application de type console</a> pour plus d'informations sur le contrôle
+    d'Apache à 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êter immédiatement</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#graceful">Redémarrage
en douceur</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#hup">Redémarrer immédiatement</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#gracefulstop">Arrê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é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><a name="introduction" id="introduction">Introduction</a></h2>
+
+    <p>Afin d'arrêter ou redémarrer Apache, vous devez envoyer un signal aux
+    processus <code class="program"><a href="./programs/httpd.html">httpd</a></code>
en cours d'exécution.  Les signaux
+    peuvent être envoyés de deux manières.  Tout d'abord, vous pouvez
+    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écutent sur votre
+    système, mais il vous suffit d'envoyer les signaux au processus parent,
+    dont le PID est enregistré dans le fichier précisé par la directive
+    <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>.
C'est à dire que vous
+    n'aurez jamais besoin d'envoyer des signaux à aucun de ces processus,
+    sauf au processus parent. Trois types de signaux peuvent être envoyé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
+    sera dé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éthode permettant d'envoyer des signaux aux processus
+    <code class="program"><a href="./programs/httpd.html">httpd</a></code>
+    consiste à utiliser les options de ligne de commande <code>-k</code> :
+    <code>stop</code>,
+    <code>restart</code>, <code>graceful</code> et <code>graceful-stop</code>,
+    comme décrit 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 contrôle <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>Après 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 dé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><a name="term" id="term">Arrêter immédiatement</a></h2>
+
+<dl><dt>Signal: TERM</dt>
+<dd><code>apachectl -k stop</code></dd>
+</dl>
+
+    <p>L'envoi du signal <code>TERM</code> ou <code>stop</code>
au
+    processus parent induit chez celui-ci une tentative immédiate
+    de tuer tous ses processus enfants. Cela peut durer plusieurs secondes.
+    Après cela, le processus parent lui-même se termine. Toutes les requêtes
+    en cours sont terminées, et plus aucune autre n'est traitée.</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">Redémarrage en douceur</a></h2>
+
+<dl><dt>Signal: USR1</dt>
+<dd><code>apachectl -k graceful</code></dd>
+</dl>
+
+    <p>L'envoi du signal <code>USR1</code> ou <code>graceful</code>
au
+    processus parent lui fait envoyer aux processus enfants
+    <em>l'ordre</em> de se terminer une fois leur requête courante
+    traitée (ou de se terminer immédiatement s'ils n'ont plus rien à traiter).
+    Le processus parent relit ses fichiers de configuration et
+    réouvre ses fichiers de log. Chaque fois qu'un enfant s'éteint, le
+    processus parent le remplace par un processus
+    enfant de la nouvelle <em>génération</em> de la
+    configuration, et celui-ci commence immédiatement à traiter les
+    nouvelles requêtes.</p>
+
+    <p>Ce code est conçu pour toujours respecter la directive de contrôle
+    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 appropriées tout au long du processus de démarrage.
+    En outre, il respecte la directive
+    <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>
de la manière
+    suivante : si après une seconde au moins <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>
nouveaux processus
+    enfants n'ont pas été créés, un nombre suffisant de processus
+    supplémentaires 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 vos souhaits définis 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 à zéro quand un signal <code>USR1</code> est envoyé. Le code
+    a été conçu à la fois pour minimiser la durée durant laquelle le
+    serveur ne peut pas traiter de nouvelles requêtes (elle sont mises en
+    file d'attente par le système d'exploitation, et ne sont ainsi jamais
+    perdues) et pour respecter vos paramètres de personnalisation.
+    Afin d'accomplir ceci, il doit conserver le
+    <em>tableau</em> utilisé pour garder la trace de tous les processus
+    enfants au cours des différentes générations.</p>
+
+    <p>Le module status utilise aussi un <code>G</code> afin d'indiquer
+    quels processus enfants ont encore des traitements de requêtes en cours
+    débutés 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 manière certaine si tous les processus
+    enfants inscrivant des traces de pré-redémarrage sont terminés.
+    Nous vous suggérons d'attendre un délai suffisant aprè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 à faible bande passante, alors vous
+    devriez attendre 15 minutes avant de faire quoi que ce soit
+    avec les anciens logs.</p>
+
+    <div class="note">
+    Si votre fichier de configuration comporte des erreurs lorsque vous
+    effectuez un redémarrage, votre processus parent ne redémarrera pas
+    et se terminera avec une erreur. Dans le cas d'un redémarrage en douceur
+    (graceful restart), il laissera les processus enfants
+    s'exécuter quand il s'arrêtera. (Ce sont les processus enfants qui
+    "s'arrêtent en douceur" en terminant de traiter leur dernière requête.)
+    Ceci provoquera des problèmes si vous tentez de redémarrer le serveur
+    -- il ne pourra pas s'associer à ses ports d'écoute. Avant d'effectuer un
+    redémarrage, vous pouvez vérifier la syntaxe des fichiers de
+    configuration à l'aide de l'argument de ligne de commande <code>-t</code>
+    (voir <code class="program"><a href="./programs/httpd.html">httpd</a></code>).
+
+    Ceci ne garantit pas encore que le serveur va redémarrer
+    correctement. Pour vérifier la sémantique des fichiers de configuration
+    en plus de leur syntaxe, vous pouvez essayer de démarrer
+    <code class="program"><a href="./programs/httpd.html">httpd</a></code>
sous un utilisateur non root.
+    S'il n'y a pas d'erreurs, il tentera d'ouvrir ses sockets et ses fichiers
+    de log et échouera car il n'a pas les privilèges root (ou parce que
+    l'instance actuelle de
+    <code class="program"><a href="./programs/httpd.html">httpd</a></code>
est déjà associée à 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 corrigée avant de lancer
+    le redémarrage en douceur.</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">Redémarrer immédiatement</a></h2>
+
+<dl><dt>Signal: HUP</dt>
+<dd><code>apachectl -k restart</code></dd>
+</dl>
+
+    <p>L'envoi du signal <code>HUP</code> ou <code>restart</code>
au
+    processus parent lui fait tuer 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éouvre ses fichiers de log.
+    Puis il donne naissance à un nouveau jeu de processus enfants
+    et continue de traiter les requê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 à zéro quand un
+    signal <code>HUP</code> est envoyé.</p>
+
+<div class="note">Si votre fichier de configuration comporte des erreurs quand vous
+effectuez un redémarrage, votre processus parent ne redémarrera pas,
+il se terminera avec une erreur. Voir plus haut la méthode à employer
+pour éviter ce problème.</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">Arrêt en douceur</a></h2>
+
+<dl><dt>Signal : WINCH</dt>
+<dd><code>apachectl -k graceful-stop</code></dd>
+</dl>
+
+    <p>L'envoi du signal <code>WINCH</code> ou <code>graceful-stop</code>
+    au processus parent lui fait <em>aviser</em> les processus enfants
+    de s'arrêter après le traitement de leur requête en cours
+    (ou de s'arrêter immédiatement s'ils n'ont plus de requête à 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'exécuter,
+    et va surveiller les processus enfants
+    qui ont encore des requêtes à traiter. Lorsque tous les processus enfants
+    ont terminé leurs traitements et se sont arrêtés ou lorsque le délai
+    spécifié par la directive <code class="directive"><a href="./mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code>
a été atteint,
+    le processus parent s'arrêtera à son tour.  Si ce délai est atteint,
+    tout processus enfant encore en cours d'exécution se verra envoyer
+    le signal <code>TERM</code>
+    afin de le forcer à s'arrêter.</p>
+
+    <p>L'envoi du signal <code>TERM</code> va arrêter immédiatement
+    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'exécuter
+    simultanément plusieurs instances de <code class="program"><a href="./programs/httpd.html">httpd</a></code>
+    avec des configurations identiques. Ceci s'avère une fonctionnalité
+    puissante quand vous effectuez des mises à jour "en douceur" d'Apache;
+    cependant, cela peut aussi causer des blocages fatals et des
+    situations de compétition (race conditions)
+    avec certaines configurations.</p>
+
+    <p>On a pris soin de s'assurer que les fichiers sur disque
+    comme ceux définis par les directives
+    <code class="directive"><a href="./mod/core.html#lockfile">Lockfile</a></code>
et
+    <code class="directive"><a href="./mod/mod_cgid.html#scriptsock">ScriptSock</a></code>
contiennent le PID
+    du serveur dans leurs noms donc ils coexistent sans problème.
+    Cependant, si une directive de
+    configuration , un module tiers ou une CGI résidente 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'exécute
+    n'écrase pas les fichiers des autres instances.</p>
+
+    <p>Vous devez aussi prendre garde aux autres situations de compétition,
+    comme l'utilisation de l'enregistrement des logs avec un transfert de ceux-ci
+    dans le style <code class="program"><a href="./programs/rotation des logs.html">rotation
des logs</a></code>. Plusieurs instances
+    du programme de <code class="program"><a href="./programs/rotation des logs.html">rotation
des logs</a></code> qui tentent d'effectuer
+    une rotation des mêmes fichiers de log en même temps peuvent dé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ñol">&nbsp;es&nbsp;</a>
|
+<a href="./fr/stopping.html" title="Franç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></p>
+</div><div id="footer">
+<p class="apache">Copyright 2006 The Apache Software Foundation.<br />Authorisé
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="./faq/">FAQ</a> | <a href="./glossary.html">Glossaire</a>
| <a href="./sitemap.html">Plan du site</a></p></div>
+</body></html>
\ No newline at end of file

Added: httpd/httpd/trunk/docs/manual/stopping.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/stopping.xml.fr?view=auto&rev=566532
==============================================================================
--- httpd/httpd/trunk/docs/manual/stopping.xml.fr (added)
+++ httpd/httpd/trunk/docs/manual/stopping.xml.fr Thu Aug 16 01:06:54 2007
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
+<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
+<!-- LastChangedRevision English document : 420990 -->
+<!-- French translation : Lucien GENTIS -->
+<!-- $LastChangedRevision: 2007070101 $ -->
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<manualpage metafile="stopping.xml.meta">
+
+  <title>Arr&ecirc;t et red&eacute;marrage</title>
+
+<summary>
+    <p>Ce document couvre l'arr&ecirc;t et le red&eacute;marrage d'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 Apache en tant que
+    service</a> et les utilisateurs de Windows 9x et ME doivent consulter
+    <a href="platform/windows.html#wincons">Ex&eacute;cuter Apache comme une
+    application de type console</a> pour plus d'informations sur le contr&ocirc;le
+    d'Apache &agrave; partir de ces plateformes.</p>
+</summary>
+
+<seealso><program>httpd</program></seealso>
+<seealso><program>apachectl</program></seealso>
+<seealso><a href="invoking.html">D&eacute;marrage</a></seealso>
+
+<section id="introduction"><title>Introduction</title>
+
+    <p>Afin d'arr&ecirc;ter ou red&eacute;marrer Apache, vous devez envoyer
un signal aux
+    processus <program>httpd</program> en cours d'ex&eacute;cution.  Les
signaux
+    peuvent &ecirc;tre envoy&eacute;s de deux mani&egrave;res.  Tout d'abord,
vous pouvez
+    utiliser la commande unix <code>kill</code>
+    pour envoyer directement des signaux aux processus. Vous pouvez remarquer
+    que plusieurs processus <program>httpd</program> 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
+    <directive module="mpm_common">PidFile</directive>. C'est &agrave; dire
que vous
+    n'aurez jamais besoin d'envoyer des signaux &agrave; aucun de ces processus,
+    sauf au processus parent. Trois 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
+    sera d&eacute;crit plus loin.</p>
+
+    <p>Pour envoyer un signal au processus parent, vous devez entrer une commande
+    du style :</p>
+
+<example>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</example>
+
+    <p>La seconde m&eacute;thode permettant d'envoyer des signaux aux processus
+    <program>httpd</program>
+    consiste &agrave; utiliser les options de ligne de commande <code>-k</code>
:
+    <code>stop</code>,
+    <code>restart</code>, <code>graceful</code> et <code>graceful-stop</code>,
+    comme d&eacute;crit ci-dessous.  Ce sont des arguments du binaire
+    <program> httpd</program>, mais il est recommand&eacute; de les utiliser
+    avec le script de contr&ocirc;le <program>apachectl</program>, qui se
+    chargera de les passer &agrave; <program>httpd</program>.</p>
+
+    <p>Apr&egrave;s avoir envoy&eacute; un signal &agrave; <program>httpd</program>,
vous pouvez
+    suivre le cours de son action en entrant :</p>
+
+<example>tail -f /usr/local/apache2/logs/error_log</example>
+
+    <p>Adaptez ces exemples en fonction de la d&eacute;finition de vos directives
+    <directive module="core">ServerRoot</directive> et
+    <directive module="mpm_common">PidFile</directive>.</p>
+</section>
+
+<section id="term"><title>Arr&ecirc;ter imm&eacute;diatement</title>
+
+<dl><dt>Signal: TERM</dt>
+<dd><code>apachectl -k stop</code></dd>
+</dl>
+
+    <p>L'envoi du signal <code>TERM</code> ou <code>stop</code>
au
+    processus parent induit chez celui-ci une tentative imm&eacute;diate
+    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>
+</section>
+
+<section id="graceful"><title>Red&eacute;marrage en douceur</title>
+
+<dl><dt>Signal: USR1</dt>
+<dd><code>apachectl -k graceful</code></dd>
+</dl>
+
+    <p>L'envoi du signal <code>USR1</code> ou <code>graceful</code>
au
+    processus parent lui fait envoyer 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
+    <directive module="mpm_common">StartServers</directive> de la mani&egrave;re
+    suivante : si apr&egrave;s une seconde au moins <directive
+    module="mpm_common">StartServers</directive> 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 vos souhaits d&eacute;finis par la
+    directive <directive module="mpm_common">StartServers</directive>.</p>
+
+    <p>Les utilisateurs du module <module>mod_status</module>
+    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.
+    Afin d'accomplir ceci, 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>Le module status utilise aussi un <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>
+
+    <note>
+    Si votre fichier de configuration comporte des erreurs lorsque vous
+    effectuez un red&eacute;marrage, votre processus parent ne red&eacute;marrera
pas
+    et se terminera avec une erreur. Dans le cas d'un red&eacute;marrage en douceur
+    (graceful restart), il laissera les processus enfants
+    s'ex&eacute;cuter quand il s'arr&ecirc;tera. (Ce sont les processus enfants qui
+    "s'arr&ecirc;tent en douceur" en terminant de traiter leur derni&egrave;re requ&ecirc;te.)
+    Ceci provoquera des probl&egrave;mes si vous tentez de red&eacute;marrer le serveur
+    -- il ne pourra pas s'associer &agrave; ses ports d'&eacute;coute. Avant d'effectuer
un
+    red&eacute;marrage, vous pouvez v&eacute;rifier la syntaxe des fichiers de
+    configuration &agrave; l'aide de l'argument de ligne de commande <code>-t</code>
+    (voir <program>httpd</program>).
+
+    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
+    <program>httpd</program> sous un utilisateur non root.
+    S'il n'y a pas d'erreurs, 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
+    <program>httpd</program> 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.</note>
+</section>
+
+<section id="hup"><title>Red&eacute;marrer imm&eacute;diatement</title>
+
+<dl><dt>Signal: HUP</dt>
+<dd><code>apachectl -k restart</code></dd>
+</dl>
+
+    <p>L'envoi du signal <code>HUP</code> ou <code>restart</code>
au
+    processus parent lui fait tuer 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 <module>mod_status</module>
+    noteront que les statistiques du serveur sont remises &agrave; z&eacute;ro quand
un
+    signal <code>HUP</code> est envoy&eacute;.</p>
+
+<note>Si votre fichier de configuration comporte des erreurs quand vous
+effectuez un red&eacute;marrage, votre processus parent ne red&eacute;marrera pas,
+il se terminera avec une erreur. Voir plus haut la m&eacute;thode &agrave; employer
+pour &eacute;viter ce probl&egrave;me.</note>
+</section>
+
+<section id="gracefulstop"><title>Arr&ecirc;t en douceur</title>
+
+<dl><dt>Signal : WINCH</dt>
+<dd><code>apachectl -k graceful-stop</code></dd>
+</dl>
+
+    <p>L'envoi du signal <code>WINCH</code> ou <code>graceful-stop</code>
+    au processus parent lui fait <em>aviser</em> les 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
+    <directive  module="mpm_common">PidFile</directive> 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 <directive
+    module="mpm_common">GracefulShutdownTimeout</directive> 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 <directive module="mpm_common">PidFile</directive>
+    aura &eacute;t&eacute; supprim&eacute;, vous ne pourrez pas utiliser
+    <code>apachectl</code> ou <code>httpd</code> pour envoyer ce
signal.</p>
+
+    <note><p>Le signal <code>graceful-stop</code> vous permet d'ex&eacute;cuter
+    simultan&eacute;ment plusieurs instances de <program>httpd</program>
+    avec des configurations identiques. Ceci s'av&egrave;re une fonctionnalit&eacute;
+    puissante quand vous effectuez des mises &agrave; jour "en douceur" d'Apache;
+    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 ceux d&eacute;finis par les directives
+    <directive module="core">Lockfile</directive> et
+    <directive  module="mod_cgid">ScriptSock</directive> contiennent le PID
+    du serveur dans leurs noms donc ils 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 <program>httpd</program> 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'utilisation de l'enregistrement des logs avec un transfert de ceux-ci
+    dans le style <program>rotation des logs</program>. Plusieurs instances
+    du programme de <program>rotation des logs</program> 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></note>
+</section>
+
+</manualpage>



Mime
View raw message