Here is a new submission. I've got a problem with the translation of "race condition". I wrote "conditions temporelles" but I don't like it. The ESTI translation talks about "contraintes temporelles critiques" or "contraintes critiques", but it doesn't seem better.
Any suggestions ? HerveTitle: Arrêt et redémarrage d'Apache
Arrêt et redémarrage d'ApacheCe document décrit l'arrêt et le redémarrage d'Apache sur Unix seulement. Les utilisateur de Windows sont invités à lire le paragraphe signaler à Apache en cours d'exécution. Lorsque qu'Apache s'exécute, vous pouvez noter que
plusieurs processus Pour envoyer un signal au père vous pouvez utiliser une commande comme
Vous pouvez lire l'effet de la commande précédente
en effectuant la commande
Ces exemples devront être modifiés en fonctions des
valeurs des directives ServerRoot et PidFile.
Avec Apache 1.3 est fourni un script apachectl qui peut être employé pour démarrer, arrêter et relancer Apache. Il peut nécessiter un peu d'adaptation pour votre système, pour cela lisez les commentaires situés au début de ce script. Signal TERM : arrêt immédiatL'envoi du signal Signal HUP : redémarrage immédiatL'envoi du signal Les utilisateurs du module status noteront que les statistiques du
serveur sont réinitialisées à zéro
après l'envoi du signal Note: si votre fichier de configuration contient des erreurs lorsque vous demandez un redémarrage, le processus père ne se relancera pas mais se terminera avec une erreur. Voir plus bas pour une méthode afin d'éviter ce problème. Signal USR1 : redémarrage en douceurNote: pour les version inférieure 1.2b9 cette fonction est instable et devrait pas être utilisée. Le signal Cette fonction est conçue pour toujours respecter les valeurs de MaxClients, MinSpareServers, et MaxSpareServers. De plus, elle respecte la valeur de StartServers de la manière suivante : si après une seconde, au moins StartServers nouveaux processus fils n'ont pas été créés, alors elle en crée suffisament pour combler le manque. Autrement dit, la fonction essaie de maintenir à la fois le nombre de processus fils approprié pour traiter la charge actuelle du serveur, et respecter vos souhaits concernant le paramètre StartServers. Les utilisateurs du module status noteront que les statistiques du
serveur ne sont pas réinitialisées
à zéro après l'envoi du signal
Le module status utilise
également un Actuellement, il n'y a aucun moyen pour un script de rotation
des fichiers de trace qui utiliserait le signal Note: Si votre fichier de configuration
contient des erreurs au moment de réinitialisaer le
processus père, celui ne redémarrera pas et se
terminera avec une erreur. Dans le cas d'un redémarrage en
douceur, le processus père laisse les fils continuer quand
il se termine. Ce sont les processus fils qui sont
"terminés en douceur" en traitant leurs requêtes en
cours. Ceci peut poser des problèmes si vous essayez de
redémarrer le serveur -- il ne sera pas capable de se
connecter sur son port d'écoute. Afin d'effectuer un
redémarrage, vous pouvez vérifier la syntaxe du
fichier de configuration en utilisant le paramètre
Annexe : signaux et conditions temporellesAvant la version 1.2b9 d'Apache il existait un certain nombre de conditions temporelles concernant les signaux de redémarrage et d'arrêt. Une description simple d'une condition temporelle est un problème lié à l'ordre des traitements dans le temps, comme quand quelque chose arrive au mauvais moment et ne se comporte pas comme prévu). Pour les architectures possédant les "bonnes" fonctionnalités, nous les avons éliminées autant que possible. Mais il doit être noté qu'il existe toujours des problèmes sur certaines architectures. Les architectures utilisant un fichier sur disque ScoreBoardFile pour la
communication interprocessus peuvent éventuellement
corrompre ce fichier. Il en résulte le message d'erreur
"bind: Address already in use" (après le signal
Sur toutes les architectures, les processus fils présentent des conditions temporelles dans le cas du traitement de la deuxième requête, et des suivantes, pour des connexions HTTP persistantes (KeepAlive). Le processus peut se terminer après avoir lu la requête mais avant d'avoir lu l'en-tête. Il existe un correctif, mais celui ci a été réalisé trop tard pour être intégré dans la version 1.2. En théorie, ceci ne doit pas être un problème car le client utilisant la persistance des connexion doit être capable de traiter ce genre de cas, ceux ci pouvant arriver soit à cause des temps de latence du réseau soit à des délais de réponse trop long des serveurs. En pratique, cela ne semble pas non plus affecter le système. Dans un test, le serveur était redémarré vingt fois par seconde et les clients ont pu consulté le site sans obtenir de documents vides ou d'images invalides. |
