]> granicus.if.org Git - apache/blob - docs/manual/stopping.html.fr
Update transforms.
[apache] / docs / manual / stopping.html.fr
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>Arrêt et redémarrage du serveur HTTP Apache - Serveur Apache HTTP</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <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" />
12 <script src="./style/scripts/prettify.js" type="text/javascript">
13 </script>
14
15 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
16 <body id="manual-page"><div id="page-header">
17 <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>
18 <p class="apache">Serveur Apache HTTP Version 2.5</p>
19 <img alt="" src="./images/feather.gif" /></div>
20 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
21 <div id="path">
22 <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.5</a></div><div id="page-content"><div id="preamble"><h1>Arrêt et redémarrage du serveur HTTP Apache</h1>
23 <div class="toplang">
24 <p><span>Langues Disponibles: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
25 <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
26 <a href="./es/stopping.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
27 <a href="./fr/stopping.html" title="Français">&nbsp;fr&nbsp;</a> |
28 <a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
29 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
30 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
31 </div>
32
33     <p>Ce document couvre l'arrêt et le redémarrage du
34     serveur HTTP Apache sur
35     les systèmes Unix et similaires. Les utilisateurs de Windows NT, 2000
36     and XP doivent consulter
37     <a href="platform/windows.html#winsvc">Exécuter httpd en tant que
38     service</a> et les utilisateurs de Windows 9x et ME doivent consulter
39     <a href="platform/windows.html#wincons">Exécuter httpd comme une
40     application de type console</a> pour plus d'informations sur le contrôle
41     de httpd à partir de ces plateformes.</p>
42 </div>
43 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">Introduction</a></li>
44 <li><img alt="" src="./images/down.gif" /> <a href="#term">Arrêter immédiatement</a></li>
45 <li><img alt="" src="./images/down.gif" /> <a href="#graceful">Redémarrage en douceur</a></li>
46 <li><img alt="" src="./images/down.gif" /> <a href="#hup">Redémarrer immédiatement</a></li>
47 <li><img alt="" src="./images/down.gif" /> <a href="#gracefulstop">Arrêt en douceur</a></li>
48 </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>
49 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
50 <div class="section">
51 <h2><a name="introduction" id="introduction">Introduction</a></h2>
52
53     <p>Afin d'arrêter ou redémarrer le serveur HTTP Apache, vous devez envoyer un signal aux
54     processus <code class="program"><a href="./programs/httpd.html">httpd</a></code> en cours d'exécution.  Les signaux
55     peuvent être envoyés de deux manières.  Tout d'abord, vous pouvez
56     utiliser la commande unix <code>kill</code>
57     pour envoyer directement des signaux aux processus. Vous pouvez remarquer
58     que plusieurs processus <code class="program"><a href="./programs/httpd.html">httpd</a></code> s'exécutent sur votre
59     système, mais il vous suffit d'envoyer les signaux au processus parent,
60     dont le PID est enregistré dans le fichier précisé par la directive
61     <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>. C'est à dire que vous
62     n'aurez jamais besoin d'envoyer des signaux à aucun de ces processus,
63     sauf au processus parent. Trois types de signaux peuvent être envoyés
64     au processus parent :
65     <code><a href="#term">TERM</a></code>,
66     <code><a href="#graceful">USR1</a></code>,
67     <code><a href="#hup">HUP</a></code>, et
68     <code><a href="#gracefulstop">WINCH</a></code>, qui
69     sera décrit plus loin.</p>
70
71     <p>Pour envoyer un signal au processus parent, vous devez entrer une commande
72     du style :</p>
73
74 <div class="example"><p><code>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</code></p></div>
75
76     <p>La seconde méthode permettant d'envoyer des signaux aux processus
77     <code class="program"><a href="./programs/httpd.html">httpd</a></code>
78     consiste à utiliser les options de ligne de commande <code>-k</code> :
79     <code>stop</code>,
80     <code>restart</code>, <code>graceful</code> et <code>graceful-stop</code>,
81     comme décrit ci-dessous.  Ce sont des arguments du binaire
82     <code class="program"><a href="./programs/httpd.html">httpd</a></code>, mais il est recommandé de les utiliser
83     avec le script de contrôle <code class="program"><a href="./programs/apachectl.html">apachectl</a></code>, qui se
84     chargera de les passer à <code class="program"><a href="./programs/httpd.html">httpd</a></code>.</p>
85
86     <p>Après avoir envoyé un signal à <code class="program"><a href="./programs/httpd.html">httpd</a></code>, vous pouvez
87     suivre le cours de son action en entrant :</p>
88
89 <div class="example"><p><code>tail -f /usr/local/apache2/logs/error_log</code></p></div>
90
91     <p>Adaptez ces exemples en fonction de la définition de vos directives
92     <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code> et
93     <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>.</p>
94 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
95 <div class="section">
96 <h2><a name="term" id="term">Arrêter immédiatement</a></h2>
97
98 <dl><dt>Signal: TERM</dt>
99 <dd><code>apachectl -k stop</code></dd>
100 </dl>
101
102     <p>L'envoi du signal <code>TERM</code> ou <code>stop</code> au
103     processus parent induit chez celui-ci une tentative immédiate
104     de tuer tous ses processus enfants. Cela peut durer plusieurs secondes.
105     Après cela, le processus parent lui-même se termine. Toutes les requêtes
106     en cours sont terminées, et plus aucune autre n'est traitée.</p>
107 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
108 <div class="section">
109 <h2><a name="graceful" id="graceful">Redémarrage en douceur</a></h2>
110
111 <dl><dt>Signal: USR1</dt>
112 <dd><code>apachectl -k graceful</code></dd>
113 </dl>
114
115     <p>L'envoi du signal <code>USR1</code> ou <code>graceful</code> au
116     processus parent lui fait envoyer aux processus enfants
117     <em>l'ordre</em> de se terminer une fois leur requête courante
118     traitée (ou de se terminer immédiatement s'ils n'ont plus rien à traiter).
119     Le processus parent relit ses fichiers de configuration et
120     réouvre ses fichiers de log. Chaque fois qu'un enfant s'éteint, le
121     processus parent le remplace par un processus
122     enfant de la nouvelle <em>génération</em> de la
123     configuration, et celui-ci commence immédiatement à traiter les
124     nouvelles requêtes.</p>
125
126     <p>Ce code est conçu pour toujours respecter la directive de contrôle
127     de processus des modules MPMs, afin que les nombres de processus et de
128     threads
129     disponibles pour traiter les demandes des clients soient maintenus à
130     des valeurs appropriées tout au long du processus de démarrage.
131     En outre, il respecte la directive
132     <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> de la manière
133     suivante : si après une seconde au moins <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> nouveaux processus
134     enfants n'ont pas été créés, un nombre suffisant de processus
135     supplémentaires est créé pour combler le manque. Ainsi le code
136     tente de maintenir à la fois le nombre approprié de processus enfants
137     en fonction de la charge du serveur, et vos souhaits définis par la
138     directive <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>.</p>
139
140     <p>Les utilisateurs du module <code class="module"><a href="./mod/mod_status.html">mod_status</a></code>
141     noteront que les statistiques du serveur ne sont <strong>pas</strong>
142     remises à zéro quand un signal <code>USR1</code> est envoyé. Le code
143     a été conçu à la fois pour minimiser la durée durant laquelle le
144     serveur ne peut pas traiter de nouvelles requêtes (elle sont mises en
145     file d'attente par le système d'exploitation, et ne sont ainsi jamais
146     perdues) et pour respecter vos paramètres de personnalisation.
147     Afin d'accomplir ceci, il doit conserver le
148     <em>tableau</em> utilisé pour garder la trace de tous les processus
149     enfants au cours des différentes générations.</p>
150
151     <p>Le module status utilise aussi un <code>G</code> afin d'indiquer
152     quels processus enfants ont encore des traitements de requêtes en cours
153     débutés avant que l'ordre graceful restart ne soit donné.</p>
154
155     <p>Pour l'instant, il est impossible pour un script de rotation
156     des logs utilisant
157     <code>USR1</code> de savoir de manière certaine si tous les processus
158     enfants inscrivant des traces de pré-redémarrage sont terminés.
159     Nous vous suggérons d'attendre un délai suffisant après l'envoi du
160     signal <code>USR1</code>
161     avant de faire quoi que ce soit avec les anciens logs. Par exemple,
162     si la plupart de vos traitements durent moins de 10 minutes pour des
163     utilisateurs empruntant des liaisons à faible bande passante, alors vous
164     devriez attendre 15 minutes avant de faire quoi que ce soit
165     avec les anciens logs.</p>
166
167     <div class="note">
168     <p>Lorsque vous initiez un redémarrage, une vérification de
169     la syntaxe est tout d'abord effectuée, afin de s'assurer qu'il n'y a
170     pas d'erreurs dans les fichiers de configuration. Si votre fichier de
171     configuration comporte des erreurs de syntaxe, vous recevrez un message
172     d'erreur les concernant, et le serveur refusera de redémarrer. Ceci
173     permet d'éviter la situation où un serveur a
174     été arrêté et ne peut plus redémarrer,
175     et où vous vous retrouvez avec un serveur hors-service.</p>
176
177     <p>Ceci ne garantit pas encore que le serveur va redémarrer
178     correctement. Pour vérifier la sémantique des fichiers de configuration
179     en plus de leur syntaxe, vous pouvez essayer de démarrer
180     <code class="program"><a href="./programs/httpd.html">httpd</a></code> sous un utilisateur non root.
181     S'il n'y a pas d'erreurs, il tentera d'ouvrir ses sockets et ses fichiers
182     de log et échouera car il n'a pas les privilèges root (ou parce que
183     l'instance actuelle de
184     <code class="program"><a href="./programs/httpd.html">httpd</a></code> est déjà associée à ces ports). S'il échoue
185     pour toute autre raison, il y a probablement une erreur dans le
186     fichier de configuration et celle-ci doit être corrigée avant de lancer
187     le redémarrage en douceur.</p></div>
188 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
189 <div class="section">
190 <h2><a name="hup" id="hup">Redémarrer immédiatement</a></h2>
191
192 <dl><dt>Signal: HUP</dt>
193 <dd><code>apachectl -k restart</code></dd>
194 </dl>
195
196     <p>L'envoi du signal <code>HUP</code> ou <code>restart</code> au
197     processus parent lui fait tuer ses processus enfants comme pour le signal
198     <code>TERM</code>, mais le processus parent ne se termine pas.
199     Il relit ses fichiers de configuration, et réouvre ses fichiers de log.
200     Puis il donne naissance à un nouveau jeu de processus enfants
201     et continue de traiter les requêtes.</p>
202
203     <p>Les utilisateurs du module <code class="module"><a href="./mod/mod_status.html">mod_status</a></code>
204     noteront que les statistiques du serveur sont remises à zéro quand un
205     signal <code>HUP</code> est envoyé.</p>
206
207 <div class="note">Comme dans le cas d'un redémarrage "graceful", une
208 vérification de la syntaxe est effectuée avant que le
209 redémarrage ne soit tenté. Si votre fichier de configuration comporte
210 des erreurs de syntaxe, le redémarrage ne sera pas effectué, et
211 vous recevrez un message concernant ces erreurs.</div>
212 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
213 <div class="section">
214 <h2><a name="gracefulstop" id="gracefulstop">Arrêt en douceur</a></h2>
215
216 <dl><dt>Signal : WINCH</dt>
217 <dd><code>apachectl -k graceful-stop</code></dd>
218 </dl>
219
220     <p>L'envoi du signal <code>WINCH</code> ou <code>graceful-stop</code>
221     au processus parent lui fait <em>aviser</em> les processus enfants
222     de s'arrêter après le traitement de leur requête en cours
223     (ou de s'arrêter immédiatement s'ils n'ont plus de requête à traiter).
224     Le processus parent va alors supprimer son fichier
225     <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> et cesser l'écoute
226     de tous ses ports. Le processus parent va continuer à s'exécuter,
227     et va surveiller les processus enfants
228     qui ont encore des requêtes à traiter. Lorsque tous les processus enfants
229     ont terminé leurs traitements et se sont arrêtés ou lorsque le délai
230     spécifié par la directive <code class="directive"><a href="./mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code> a été atteint,
231     le processus parent s'arrêtera à son tour.  Si ce délai est atteint,
232     tout processus enfant encore en cours d'exécution se verra envoyer
233     le signal <code>TERM</code>
234     afin de le forcer à s'arrêter.</p>
235
236     <p>L'envoi du signal <code>TERM</code> va arrêter immédiatement
237     les processus parent et enfants en état "graceful". Cependant,
238     comme le fichier <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>
239     aura été supprimé, vous ne pourrez pas utiliser
240     <code>apachectl</code> ou <code>httpd</code> pour envoyer ce signal.</p>
241
242     <div class="note"><p>Le signal <code>graceful-stop</code> vous permet d'exécuter
243     simultanément plusieurs instances de <code class="program"><a href="./programs/httpd.html">httpd</a></code>
244     avec des configurations identiques. Ceci s'avère une fonctionnalité
245     puissante quand vous effectuez des mises à jour "en douceur"
246     de httpd ; cependant, cela peut aussi causer des blocages fatals et des
247     situations de compétition (race conditions)
248     avec certaines configurations.</p>
249
250     <p>On a pris soin de s'assurer que les fichiers sur disque
251     comme les fichiers verrou (<code class="directive"><a href="./mod/core.html#mutex">Mutex</a></code>) et les fichiers socket Unix
252     (<code class="directive"><a href="./mod/mod_cgid.html#scriptsock">ScriptSock</a></code>) contiennent le PID
253     du serveur, et coexistent sans problème. Cependant, si une directive de
254     configuration, un module tiers ou une CGI résidente utilise un autre
255     verrou ou fichier d'état sur disque, il faut prendre soin de s'assurer
256     que chaque instance de <code class="program"><a href="./programs/httpd.html">httpd</a></code> qui s'exécute
257     n'écrase pas les fichiers des autres instances.</p>
258
259     <p>Vous devez aussi prendre garde aux autres situations de compétition,
260     comme l'utilisation de l'enregistrement des logs avec un transfert de ceux-ci
261     dans le style <code class="program"><a href="./programs/rotation des logs.html">rotation des logs</a></code>. Plusieurs instances
262     du programme de <code class="program"><a href="./programs/rotation des logs.html">rotation des logs</a></code> qui tentent d'effectuer
263     une rotation des mêmes fichiers de log en même temps peuvent détruire
264     mutuellement leurs propres fichiers de log.</p></div>
265 </div></div>
266 <div class="bottomlang">
267 <p><span>Langues Disponibles: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
268 <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
269 <a href="./es/stopping.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
270 <a href="./fr/stopping.html" title="Français">&nbsp;fr&nbsp;</a> |
271 <a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
272 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
273 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
274 </div><div id="footer">
275 <p class="apache">Copyright 2012 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
276 <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><script type="text/javascript">
277     if (typeof(prettyPrint) !== undefined) {
278         prettyPrint();
279     }
280 </script>
281 </body></html>