¿Puedo "recargar" el archivo de configuración de Apache2 sin problemas?

16

Es

sudo /etc/init.d/apache2 reload

interrumpiendo las operaciones en los servidores web alojados por apache?

aneuryzm
fuente

Respuestas:

19

Reload hace un "reinicio elegante".

De la documentación de Apache Detener y reiniciar :

La señal USR1 o agraciada hace que el proceso principal aconseje a los hijos que salgan después de su solicitud actual (o que salgan inmediatamente si no están sirviendo nada). El padre vuelve a leer sus archivos de configuración y vuelve a abrir sus archivos de registro. A medida que cada hijo muere, el padre lo reemplaza con un hijo de la nueva generación de la configuración, que comienza a atender nuevas solicitudes de inmediato.

En teoría, no se interrumpirán las operaciones, pero habrá una ola de procesos de reinicio del servidor, con algunos (normalmente lo suficientemente trivial) sobrecarga.

En efecto, hay más variables involucradas, como si está utilizando prefork o trabajador, el número de hijos que ha especificado y, en el caso de trabajador, el número máximo de subprocesos por hijo.

harrymc
fuente
1
Okay. Entonces, más precisamente, si mi cliente está realizando un pedido en una tienda electrónica basada en php. Si vuelvo a cargar Apache sin reiniciar, ¿tendrá problemas? gracias
aneuryzm
Nuevamente, en teoría , siempre y cuando el pedido del cliente se maneje en una llamada php, y mientras la recarga no sea crítica para el correcto funcionamiento de los servidores de "vieja generación", todo pasará con gracia y bien. Pero es bastante fácil de probar en la práctica.
harrymc
Tenga en cuenta que los scripts de inicio son agregados por el empaquetador. Los de redhat / oracle linux apache v2.2 envían una señal -HUP cuando llaman al servicio httpd reload . Para un servicio de reinicio elegante, se debe llamar a httpd graceful que llama a / usr / sbin / apachectl graceful .
David Balažic