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