<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
<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"> de </a> |
<a href="./en/stopping.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="./es/stopping.html" hreflang="es" rel="alternate" title="Espa±ol"> es </a> |
<a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
</div><div id="footer">
<p class="apache">Copyright 2007 The Apache Software Foundation.<br />AuthorisΘ sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>