
Gostaria de saber por que o comando para iniciar o servidor apache2 realmente inicia três processos
Na verdade, digitando este comando:
sudo apache2ctl -k start
então, digitando este comando:
ps aux | grep apache2
fornece três processos correspondentes ao apache2. Isso é normal?
Responder1
Sim. O Apache possui vários módulos de processamento diferentes para lidar com solicitações. Os mais comuns são worker
e prefork
. Ambos usam vários processos. Prefork
usa um processo por conexão de cliente e sempre garante que haja alguns processos ociosos disponíveis para lidar com novas conexões sem demora. Worker
ainda utiliza vários processos mas também utiliza threads nesses processos. Isso usa menos recursos em comparação, prefork
mas ainda precisa de vários processos normalmente.
Um processo que você vê é provavelmente o processo "mestre" que abre as portas TCP e aguarda conexões e passa as conexões de entrada para um processo Apache diferente para fazer o processamento real. Os outros processos são processos de trabalho, de prefork
ou de worker
módulo.