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" />
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7 This file is generated from xml source: DO NOT EDIT
8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
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">
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="<-" alt="<-" src="./images/left.gif" /></a></div>
24 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <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>
26 <p><span>Langues Disponibles: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
27 <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English"> en </a> |
28 <a href="./es/stopping.html" hreflang="es" rel="alternate" title="Español"> es </a> |
29 <a href="./fr/stopping.html" title="Français"> fr </a> |
30 <a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
31 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
32 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
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>
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>
53 <h2><a name="introduction" id="introduction">Introduction</a> <a title="Lien permanent" href="#introduction" class="permalink">¶</a></h2>
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>
74 <p>Pour envoyer un signal au processus parent, vous devez entrer une commande
77 <div class="example"><p><code>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</code></p></div>
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>
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>
92 <div class="example"><p><code>tail -f /usr/local/apache2/logs/error_log</code></p></div>
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>
99 <h2><a name="term" id="term">Arrêter immédiatement</a> <a title="Lien permanent" href="#term" class="permalink">¶</a></h2>
101 <dl><dt>Signal: TERM</dt>
102 <dd><code>apachectl -k stop</code></dd>
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">¶</a></h2>
114 <dl><dt>Signal: USR1</dt>
115 <dd><code>apachectl -k graceful</code></dd>
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>
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
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>
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>
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>
160 <p>Pour l'instant, il est impossible pour un script de rotation
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>
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>
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">¶</a></h2>
197 <dl><dt>Signal: HUP</dt>
198 <dd><code>apachectl -k restart</code></dd>
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>
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>
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">¶</a></h2>
222 <dl><dt>Signal : WINCH</dt>
223 <dd><code>apachectl -k graceful-stop</code></dd>
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>
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>
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>
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>
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>
273 <div class="bottomlang">
274 <p><span>Langues Disponibles: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
275 <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English"> en </a> |
276 <a href="./es/stopping.html" hreflang="es" rel="alternate" title="Español"> es </a> |
277 <a href="./fr/stopping.html" title="Français"> fr </a> |
278 <a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
279 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
280 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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&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';
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';
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);
295 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
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') {