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