Что такое флаг apache2ctl "-k"?

Что такое флаг apache2ctl "-k"?

Я искал час и нашел сотню примеров, которые его используют, но никаких объяснений того, что он делает. Я проверил 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 или хотите передавать параметры исполняемому файлу 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 на запуск, перезапуск или остановку.

Связанный контент