为什么在启动时自动启动httpd时,有9个httpd进程在运行?

一个pgrep httpd yeilds 9 pids:

 1624 1651 1652 1653 1654 1655 1656 1657 1658 

如果我用第一个pid(这里是1624 )杀死了httpd进程,那么所有的httpd进程都将被终止。

虽然如果用pid而不是第一个进程杀死进程,只有那个进程被杀死。 一旦httpd进程数低于6,就会产生httpd进程,httpd进程数维持在6。

当我手动启动httpd时,不会发生这种情况。 只有一个进程getd创build。

  • 为什么是上述行为?
  • httpd是以线程为基础开始的吗?

Also I am running httpd on Fedora 15 on a 6 core processor.

而且我还没有改变/etc/sysconfig/httpd每一行/etc/sysconfig/httpd内容。

行为取决于你正在使用的MPM,但是,这是预期的; 这些是工作进程。 在configuration中查找StartServers指令。

当您通过服务或/e​​tc/init.d/httpd启动httpd时,会读取/ etc / sysconfig / httpd,如果HTTPD未更改,则启动prefork模型。 当你手动启动时,你可能启动了基于工人的模型。 如果你看一下/etc/httpd/conf/httpd.conf并寻找prefork,你会发现与这两个模型相关的部分。 StartServers表示要加载多less个进程。