为什么我只启动了一个 apache httpd 服务,但机器上却有许多 httpd 进程?

为什么我只启动了一个 apache httpd 服务,但机器上却有许多 httpd 进程?

在安装了 apache 的 Linux 机器上,我通过 ps -ef | grep httpd 搜索了 httpd,

我看到大约 10 个 httpd 进程,这是为什么呢?

myuser  14732     1  0 Jan12 ?        00:00:10 /home/myuser/webserver/bin/httpd -k start
myuser  14736 14732  0 Jan12 ?        00:00:00 /home/myuser/webserver/bin/httpd -k start
myuser  31309 14732  0 Jan14 ?        00:00:00 /home/myuser/webserver/bin/httpd -k start
myuser  31313 14732  0 Jan14 ?        00:00:00 /home/myuser/webserver/bin/httpd -k start

谢谢。

答案1

你启动了父级,然后父级启动了工作子级。

答案2

你可能想读一下Apache 有关 MPM 的文档。这是权威指南。我还建议阅读有关 Unix 守护进程的一般工作原理。

长话短说:

  • 你有一个“控制”过程
  • 每个“工作”进程处理一个客户端

答案3

这些是子进程,其数量由启动服务器对 Apache 的指令预分叉或者工人模块。

相关内容