10

Я искал час и нашел сотни примеров, которые его используют, но без объяснения того, что он делает. Я проверил man apache2ctl ; он также не объясняет флаг k (хотя он использует его в примерах).

2 ответа2

8

Да, это немного скрыто в описании:

При работе в сквозном режиме 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 о запуске, перезапуске или остановке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .