apachectl和httpd.worker有什么区别?

我的主机服务Webfaction自动为django / python应用程序安装apache启动脚本。 安装的启动脚本是:

#!/bin/bash LD_LIBRARY_PATH=/home/mertnuhoglu/webapps/dj02/apache2/lib /home/mertnuhoglu/webapps/dj02/apache2/bin/httpd.worker -f /home/mertnuhoglu/webapps/dj02/apache2/conf/httpd.conf -k start 

这个脚本启动一个httpd.worker实例:

  3364 00:03 8950 /home/mertnuhoglu/webapps/dj02/apache2/bin/httpd.worker 

最近,我按照自定义应用程序安装教程 。 在本教程中,启动脚本被定义为:

 #!/bin/bash /home/rocketmonkeys/webapps/django/apache2/bin/apachectl start 

这个脚本启动一个httpd -k start

  0.0 1620 17462 /home/mertnuhoglu/webapps/django/apache2/bin/httpd -k start 

我想问三件事情:

  1. 这两种启动Apache服务器的方式有什么区别?

  2. 在第一个脚本中,哪个可执行文件( httpd.workerhttpd.conf或其他)运行?

  3. 为什么第二个例子中的httpd实例有-k start参数? 这是由于apachectl

  1. apachectlhttpd一个包装器,只是设置了一些环境variables,并在这里更详细地添加了更多的function,比如configtesthttpd.worker就像httpd但启用了worker模块 。

  2. 第一个脚本使用httpd.confconfiguration文件执行httpd.worker二进制文件。

  3. 正确的, apachectl-k start参数追加到httpd