Jawaban:
Ya, itu sedikit terkubur dalam deskripsi :
Ketika bertindak dalam mode pass-through,
apachectl
dapat mengambil semua argumen yang tersedia untukhttpd
biner.apachectl [ httpd-argument ]
Jadi mari kita lihat http
dokumentasi lalu:
-k start|restart|graceful|stop|graceful-stop
Sinyal
httpd
untuk memulai, memulai kembali, atau berhenti.
Jadi, jika Anda menggunakan -k <option>
, Anda hanya akan meneruskan httpd
, yang membutuhkan argumen ini.
Jika Anda tidak menggunakan -k
, apache2ctl
alih-alih akan mencari perintah yang akan ditangani sendiri, yang lagi-lagi sama seperti yang httpd
akan diambil.
Melihat kode sumber menunjukkan perilaku ini, di mana case
pernyataan memeriksa apakah argumen pertama adalah salah satu perintah internal yang diakui, dan akhirnya (sebagai fallback), semuanya diteruskan httpd
.
case $ARGV in
start)
HTTPD ${APACHE_ARGUMENTS} -k $ARGV # <= note the -k here
# ...
stop|graceful-stop)
# ...
# ...
*)
$HTTPD ${APACHE_ARGUMENTS} $ARGV
ERROR=$?
esac
-k
, maka apachectl
akan menangani perintah itu sendiri, tetapi melakukan hal yang sama httpd
. Jika Anda menggunakan -k
, perintah diteruskan ke httpd
apa adanya.
Edit untuk menambahkan: Maaf, jenis slhck lebih cepat dari saya: D
'apache2ctl' sebenarnya hanya sebuah front-end untuk executable 'httpd' dan berjalan dalam dua mode tergantung pada apakah Anda ingin itu menjadi skrip init SysV atau jika Anda ingin meneruskan opsi-opsi ke executable httpd. -K sebenarnya akan diteruskan ke httpd.
http://httpd.apache.org/docs/2.2/programs/apachectl.html
Saat bertindak dalam mode pass-through, apachectl dapat mengambil semua argumen yang tersedia untuk biner httpd.
apachectl [httpd-argumen]
Jadi dari halaman manual httpd, http://httpd.apache.org/docs/2.2/programs/httpd.html
-k start | restart | anggun | berhenti | anggun-stop Sinyal httpd untuk memulai, memulai kembali, atau berhenti.