Я искал час и нашел сотни примеров, которые его используют, но без объяснения того, что он делает. Я проверил man apache2ctl
; он также не объясняет флаг k (хотя он использует его в примерах).
источник
Я искал час и нашел сотни примеров, которые его используют, но без объяснения того, что он делает. Я проверил man apache2ctl
; он также не объясняет флаг k (хотя он использует его в примерах).
Да, это немного скрыто в описании :
Действуя в сквозном режиме,
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, или если вы хотите передать опции для исполняемого файла httpd. -K фактически передается через httpd.
http://httpd.apache.org/docs/2.2/programs/apachectl.html
Итак, со страницы руководства httpd http://httpd.apache.org/docs/2.2/programs/httpd.html
источник