Answers:
是的,它有点埋没在描述中:
在直通模式下操作时,
apachectl
可以采用httpd
二进制可用的所有参数。apachectl [ httpd-argument ]
因此,我们来看一下http
的文档:
-k start|restart|graceful|stop|graceful-stop
httpd
发出启动,重新启动或停止的信号。
因此,如果使用-k <option>
,您将直接传递到httpd
,需要此参数。
如果您不使用-k
,apache2ctl
则将查找将自行处理的命令,这些命令也将相同httpd
。
查看源代码会表现出这种行为,其中一条case
语句检查第一个参数是否为可识别的内部命令之一,最后(作为后备)将所有内容传递给httpd
。
case $ARGV in
start)
HTTPD ${APACHE_ARGUMENTS} -k $ARGV # <= note the -k here
# ...
stop|graceful-stop)
# ...
# ...
*)
$HTTPD ${APACHE_ARGUMENTS} $ARGV
ERROR=$?
esac
-k
,那么apachectl
它将自己处理命令,但其功能与相同httpd
。如果使用-k
,则命令按httpd
原样传递。
编辑添加:对不起,slhck类型比我快:D
实际上,“ apache2ctl”只是“ httpd”可执行文件的前端,并以两种模式运行,具体取决于您是希望将其作为SysV init脚本编写还是将选项传递给httpd可执行文件。-k实际上通过httpd传递。
http://httpd.apache.org/docs/2.2/programs/apachectl.html
当以直通模式运行时,apachectl可以采用httpd二进制文件可用的所有参数。
apachectl [httpd-argument]
因此,从httpd手册页http://httpd.apache.org/docs/2.2/programs/httpd.html
-k start | restart | graceful | stop | graceful-stop指示httpd启动,重新启动或停止。