我已經搜尋了一個小時,找到了一百個使用它的範例,但沒有解釋它的作用。我確實檢查過man apache2ctl
;它也沒有解釋 k 標誌(儘管它在示例中使用了它)。
答案1
是的,有點被埋了在描述中:
當以直通模式運作時,
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
答案2
編輯新增:抱歉,slhck 打字比我快:D
「apache2ctl」實際上只是「httpd」可執行檔的前端,並以兩種模式運行,具體取決於您是否希望它可透過 SysV init 編寫腳本,或者是否希望將選項傳遞給 httpd 可執行檔。 -k 實際上被傳遞給 httpd。
http://httpd.apache.org/docs/2.2/programs/apachectl.html
以直通模式運作時,apachectl 可以取得 httpd 二進位檔案可用的所有參數。
apachectl [ httpd 參數 ]
所以從 httpd 手冊頁來看,http://httpd.apache.org/docs/2.2/programs/httpd.html
-k start|restart|graceful|stop|graceful-stop 指示 httpd 啟動、重新啟動或停止。