Principales diferencias a la hora de reiniciar un servidor web Apache mediante /etc/init.d/httpd restart y /etc/init.d/httpd graceful.
Reinicio con restart
Como se puede observar, hay parada de servicio. Puede llegar a ser mínima pero hay un momento en el que no hay ningún proceso httpd para servir peticiones web.
Reinicio con graceful
Reinicio con restart
# apachectl -k restart # /etc/init.d/httpd restartDe esta forma se envia una señal HUP a los procesos httpd (enviar señales a un proceso). Básicamente lo que hace es:
- Solicitar la finalización de los procesos con la señal TERM a los procesos child (hijos) y eliminar el proceso padre
- Se vuelven a leer los ficheros de configuración y se abren los ficheros de log. Las estadísticas de mod_status se reinician
- Se genera el proceso padre y a partir de él los nuevos procesos hijos
Como se puede observar, hay parada de servicio. Puede llegar a ser mínima pero hay un momento en el que no hay ningún proceso httpd para servir peticiones web.
Reinicio con graceful
# apachectl -k graceful # /etc/init.d/httpd gracefulEsta forma de reiniciar Apache hace que se envíe una señal USR1, lo cual hace que en lugar de reiniciar todos los procesos hijos de vez, el proceso padre permite que cada uno de los child termine de servir la petición web antes de morir. El proceso sería el siguiente:
- Enviamos la señal USR1 o graceful
- El proceso padre indica a los hijos que mueran una vez finalizada la petición que estén sirviendo
- El proceso padre vuelve a leer los ficheros de configuración y abrir los logs
- Los procesos hijos van terminando de servir las peticiones y el padre los va sustituyendo por nuevos (que ya tienen cargada la nueva configuración)
0 comentarios:
Publicar un comentario