Deja de Apache con gracia


24

¿Hay alguna manera de detener el servidor Apache sin terminar la ejecución de las solicitudes, básicamente una forma de decirlo: no acepte más conexiones y cierre cuando termine las actuales?

Respuestas:



12

Usar apachectl -k graceful-stopdesde aquí :

La señal WINCH o graceful-stop hace que el proceso principal aconseje a los niños que salgan después de su solicitud actual (o que salgan inmediatamente si no están sirviendo nada). El padre eliminará su PidFile y dejará de escuchar en todos los puertos. El padre continuará ejecutándose y supervisará a los niños que manejan solicitudes. Una vez que todos los niños hayan finalizado y salido o se haya alcanzado el tiempo de espera especificado por GracefulShutdownTimeout, el padre también saldrá.


1

Tenga en cuenta que sys-v init solía hacer una parada elegante de forma predeterminada y tenía la opción de forzar parada como una opción adicional. Una opción "especial" para detener con gracia solo es necesaria si ejecuta un administrador de procesos personalizado que normalmente mata los procesos.


Esta respuesta podría dar la impresión de que, dado que systemdno es un administrador de procesos personalizado, no mata el proceso. Sin embargo, por defecto systemd también realiza un stopno graceful-stoppara apache.
B. Miller

44
@ B.Miller si su systemd realiza una parada en lugar de una parada elegante, es un error específico del sistema operativo que debe registrarse. Arch Linux y CentOS 7 realizan paradas elegantes.
Harald

Debian también hace una parada elegante
John Keates,

2
Interesante @JohnKeates ... tal vez esto es específico de Ubuntu 18.04. 18.04 usa el comando de detención/usr/sbin/apachectl stop
B. Miller
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.