为什么Apachesubprocess以root身份运行?

我使用Apache2-mpm-prefork和apache2-mod-php5运行Ubuntu 10.10服务器,我正在使用:

User www-data Group www-data 

在configuration文件中,当执行ps -efH我得到这些行:

  root 1497 1 0 09:43 ? 00:00:00 /usr/sbin/apache2 -k start root 1530 1497 0 09:43 ? 00:00:00 /usr/sbin/apache2 -k start www-data 1531 1497 0 09:43 ? 00:00:00 /usr/sbin/apache2 -k start www-data 1532 1497 0 09:43 ? 00:00:00 /usr/sbin/apache2 -k start 

显然,一个subprocess正在运行,但为什么?

这也发生在我自己编译Apache的时候,我找不到一个理由,而且我还不知道这个root-child进程是否正在服务请求。

任何绑定到1024以下端口(特权端口)的进程都需要以root身份运行才能进行绑定。 所以主要的apache进程绑定到端口并打开日志文件,并执行一些其他仅根项目。

然后它会产生孩子做所有处理请求的工作。

谢谢大家,现在已经很清楚了,我确定我的设置是安全的:

netstat -tlnp|grep apache2

 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1497/apache2 

lsof -p 1497

 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME apache2 1497 root cwd DIR 8,2 4096 2 / apache2 1497 root rtd DIR 8,2 4096 2 / apache2 1497 root txt REG 8,2 1437809 2755831 /usr/lib/apache2/mpm-prefork/apache2 apache2 1497 root mem REG 8,2 88384 1835068 /lib/libgcc_s.so.1 apache2 1497 root mem REG 8,2 10248 2755896 /usr/lib/apache2/modules/mod_vhost_alias.so apache2 1497 root mem REG 8,2 22528 2755882 /usr/lib/apache2/modules/mod_status.so apache2 1497 root mem REG 8,2 14336 2755847 /usr/lib/apache2/modules/mod_setenvif.so apache2 1497 root mem REG 8,2 63488 2755865 /usr/lib/apache2/modules/mod_rewrite.so apache2 1497 root mem REG 8,2 14344 2755892 /usr/lib/apache2/modules/mod_reqtimeout.so apache2 1497 root mem REG 8,2 6069136 2757137 /usr/lib/apache2/modules/libphp5.so apache2 1497 root mem REG 8,2 30728 2755875 /usr/lib/apache2/modules/mod_negotiation.so apache2 1497 root mem REG 8,2 18432 2755836 /usr/lib/apache2/modules/mod_mime.so apache2 1497 root mem REG 8,2 18432 2755880 /usr/lib/apache2/modules/mod_headers.so apache2 1497 root mem REG 8,2 10240 2755862 /usr/lib/apache2/modules/mod_env.so apache2 1497 root mem REG 8,2 10240 2755849 /usr/lib/apache2/modules/mod_dir.so apache2 1497 root mem REG 8,2 26624 2755851 /usr/lib/apache2/modules/mod_cgi.so apache2 1497 root mem REG 8,2 34824 2755885 /usr/lib/apache2/modules/mod_autoindex.so apache2 1497 root mem REG 8,2 10248 2755843 /usr/lib/apache2/modules/mod_authz_user.so apache2 1497 root mem REG 8,2 10248 2755841 /usr/lib/apache2/modules/mod_authz_host.so apache2 1497 root mem REG 8,2 10248 2755838 /usr/lib/apache2/modules/mod_authz_groupfile.so apache2 1497 root mem REG 8,2 6152 2755900 /usr/lib/apache2/modules/mod_authz_default.so apache2 1497 root mem REG 8,2 10248 2755887 /usr/lib/apache2/modules/mod_authn_file.so apache2 1497 root mem REG 8,2 10248 2755856 /usr/lib/apache2/modules/mod_auth_basic.so apache2 1497 root mem REG 8,2 14336 2755855 /usr/lib/apache2/modules/mod_alias.so .... apache2 1497 root DEL REG 0,4 8727 /dev/zero apache2 1497 root 0r CHR 1,3 0t0 4206 /dev/null apache2 1497 root 1w CHR 1,3 0t0 4206 /dev/null apache2 1497 root 2w REG 8,2 1578 524530 /var/log/apache2/error.log apache2 1497 root 3u IPv4 8506 0t0 TCP *:www (LISTEN) apache2 1497 root 4r FIFO 0,8 0t0 8645 pipe apache2 1497 root 5w FIFO 0,8 0t0 8645 pipe apache2 1497 root 6w REG 8,2 36033304 524628 /var/log/apache2/other_vhosts_access.log apache2 1497 root 7w REG 8,2 1791423 524338 /var/log/apache2/access.log apache2 1497 root 9u unix 0xffff880037a5b0c0 0t0 8723 socket 

lsof -p 1531

 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME apache2 1531 www-data cwd DIR 8,2 4096 2 / .... apache2 1531 www-data 3u IPv4 8506 0t0 TCP *:www (LISTEN) 

这条线是什么?

apache2 1531 www-data 3u IPv4 8506 0t0 TCP *:www(LISTEN)

然而对于lsof -p 1530

 apache2 1530 root cwd DIR 8,2 4096 2 / apache2 1530 root rtd DIR 8,2 4096 2 / apache2 1530 root txt REG 8,2 1437809 2755831 /usr/lib/apache2/mpm-prefork/apache2 .... 

没有TCP侦听线,所以这个root-child进程不接受请求,正如@Mike所说,应该有一个模块需要这个function,但我无法知道哪一个(我试图禁用它们之一一个没有成功)。

再次感谢。