启动apache2会启动三个进程

启动apache2会启动三个进程

我想知道为什么启动 apache2 服务器的命令实际上启动了三个进程

确实,输入这个命令:

sudo apache2ctl -k start

然后输入以下命令:

ps aux | grep apache2

给出了三个对应于 apache2 的进程。这正常吗?

答案1

是的。Apache 有几种不同的处理模块来处理请求。最常见的是workerprefork。两者都使用多个进程。Prefork每个客户端连接使用一个进程,并始终确保有几个空闲进程可用于及时处理新连接。Worker仍然使用多个进程,但也在这些进程中使用线程。与相比,这使用的资源更少,prefork但通常仍需要多个进程。

您看到的一个进程可能是“主”进程,它打开 TCP 端口并等待连接,并将传入的连接传递给不同的 apache 进程以进行实际处理。其他进程是工作进程,无论是来自prefork还是worker模块。

相关内容