Arrêtez Apache gracieusement


24

Existe-t-il un moyen d'arrêter le serveur Apache sans terminer l'exécution des requêtes, essentiellement un moyen de le dire - n'acceptez plus de connexions et fermez-vous lorsque vous avez terminé vos connexions actuelles?

Réponses:



12

Utilisez apachectl -k graceful-stopd' ici :

Le signal WINCH ou graceful-stop oblige le processus parent à conseiller aux enfants de quitter après leur demande en cours (ou de quitter immédiatement s'ils ne servent rien). Le parent supprimera alors son PidFile et cessera d'écouter sur tous les ports. Le parent continuera à s'exécuter et surveillera les enfants qui traitent les demandes. Une fois que tous les enfants ont finalisé et quitté ou que le délai spécifié par GracefulShutdownTimeout a été atteint, le parent quitte également.


1

Gardez à l'esprit que sys-v init faisait par défaut un arrêt gracieux et avait forcé l'arrêt comme option supplémentaire. Une option «spéciale» pour arrêter gracieusement n'est nécessaire que si vous exécutez un gestionnaire de processus personnalisé qui tue normalement les processus.


Cette réponse pourrait donner l'impression que, systemdn'étant pas un gestionnaire de processus personnalisé, il ne tue pas le processus. Cependant, par défaut, systemd effectue également un stoppas graceful-stoppour apache.
B. Miller

4
@ B.Miller si votre systemd effectue un arrêt au lieu d'un arrêt gracieux, c'est un bogue spécifique au système d'exploitation qui doit être enregistré. Arch Linux et CentOS 7 effectuent tous deux des arrêts gracieux.
Harald

Debian fait aussi un arrêt gracieux
John Keates

2
Intéressant @JohnKeates ... c'est peut-être spécifique à Ubuntu 18.04. 18.04 utilise la commande d'arrêt/usr/sbin/apachectl stop
B. Miller
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.