CentOS httpd 以 root 和 apache 用户身份运行

CentOS httpd 以 root 和 apache 用户身份运行

我的 CentOS 服务器上运行着一个 Apache httpd 服务器,但显然它既以 root 身份运行一个 httpd 进程,又以 apache 用户身份运行一个 httpd 进程。

参见顶部的屏幕截图:

在此处输入图片描述

配置文件中的用户和组设置为 apache,所以我在这里有点迷失。

你们有人知道是什么启动了“root”进程,以及它为什么运行吗?

答案1

以“apache”身份运行的是工作进程。以“root”身份运行的是主进程。这完全正常。

主进程将根据需要生成工作进程(无论配置文件中指定了什么约束)来处理传入流量。它通常需要 root 权限才能绑定到低端口 80 和 443。绑定后,它将放弃对 apache 用户的权限。

工作者进程会不时被收割。长时间运行的进程是以 root 身份运行的进程。如果您查看 httpd.conf,您会看到类似以下内容的块:

StartServers       1
MinSpareServers    1
MaxSpareServers    5
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000

因此,在此示例中,主进程将在启动时生成一个工作进程。如果流量增加,它将生成更多工作进程。一旦工作进程处理了 4000 个请求,工作进程将终止,主进程可能会根据流量生成新的工作进程。

答案2

我不知道为什么或者怎么样,但看起来根进程是父进程,而 apache 拥有的进程是子进程。

我运行pstree -Acp | grep httpd并比较了它ps aux | grep httpd

相关内容