我在CentOS服务器上运行了一个Apache httpd服务器,但显然它以root用户身份运行httpd进程,并且以apache用户身份运行。
看到这个顶部的截图:

用户和组在configuration文件中设置为apache,所以我有点迷路了。
你们中的任何人都知道启动“根”过程的原因是什么?
运行“apache”的是工作进程。 以“root”身份运行的是主进程。 这是完全正常的。
主进程将根据需要产生工作人员(configuration文件中指定的任何约束)来处理传入stream量。 它通常需要为root才能绑定到低端口80和443.绑定后,它将权限下降到apache用户。
工人会不时收割。 长期运行的进程是以root身份运行的进程。 如果你看看httpd.conf,你会看到一个如下所示的块:
StartServers 1 MinSpareServers 1 MaxSpareServers 5 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000
所以,在这个例子中,主进程会在启动时产生一个worker。 如果有更多的stream量,它会产生更多的工人。 一旦工作人员提出了4000个请求,工作人员就会死亡,主进程可能会产生新的工作进程,具体取决于stream量。
我不知道为什么或如何,但似乎根进程是父进程,而Apache拥有的进程是孩子。
我运行了pstree -Acp | grep httpd pstree -Acp | grep httpd并将其与ps aux | grep httpd ps aux | grep httpd