Що таке прапор apache2ctl "-k"?


11

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

Відповіді:


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

Я новачок у цьому. Чи можете ви пояснити мені простою англійською мовою, що насправді буде прагнути k прапор? На моєму сервері Ubuntu, мабуть, немає значення, якщо я використовую прапор k чи ні, він завжди успішно перезапускається, наскільки я можу сказати.
BadHorsie

Те, що ти бачиш, це нормально. Як я вже говорив, якщо ви не використовуєте -k, то apachectlбудете обробляти самі команди, але це робить те саме, що httpd. Якщо ви використовуєте -k, команда передається httpdяк є.
slhck

Я все ще не знаю, що це означає з точки зору функціональності, якщо чесно, але ви хочете сказати, що це не має значення, використовуєте ви прапор -k чи ні, це зробить те ж саме в обхідному шляху ?
BadHorsie

1
Це я кажу, так. Із історичних причин обидва працюють.
slhck

"мало похований"? Чому б не зателефонувати цьому - документація apache справді відстійна. Я не думаю, що це з історичних причин, це з міркувань передачі інших аргументів httpd.
Пало

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 man, http://httpd.apache.org/docs/2.2/programs/httpd.html

-k початок | перезапуск | витончений | зупинка | витончений-стоп сигналів httpd для запуску, перезапуску чи зупинки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.