
Me gustaría saber por qué el comando para iniciar el servidor Apache2 en realidad inicia tres procesos.
De hecho, escribiendo este comando:
sudo apache2ctl -k start
luego, escribiendo este comando:
ps aux | grep apache2
Da tres procesos correspondientes a apache2. ¿Eso es normal?
Respuesta1
Sí. Apache tiene varios módulos de procesamiento diferentes para manejar solicitudes. Los más comunes son worker
y prefork
. Ambos utilizan múltiples procesos. Prefork
utiliza un proceso por conexión de cliente y siempre se asegura de que haya algunos procesos inactivos disponibles para manejar nuevas conexiones sin demora. Worker
Todavía usa varios procesos pero también usa subprocesos en estos procesos. Esto utiliza menos recursos en comparación con, prefork
pero aún necesita varios procesos normalmente.
Un proceso que ve es probablemente el proceso "maestro" que abre los puertos TCP, espera conexiones y pasa las conexiones entrantes a un proceso de Apache diferente para realizar el procesamiento real. Los otros procesos son procesos de trabajo, ya sea desde prefork
o worker
módulo.