Ich habe eine Stunde lang gesucht und hundert Beispiele gefunden, die es verwenden, aber keine Erklärung dafür, was es tut. Ich habe nachgesehen man apache2ctl
; es erklärt auch nicht das k-Flag (obwohl es in Beispielen verwendet wird).
quelle
Ich habe eine Stunde lang gesucht und hundert Beispiele gefunden, die es verwenden, aber keine Erklärung dafür, was es tut. Ich habe nachgesehen man apache2ctl
; es erklärt auch nicht das k-Flag (obwohl es in Beispielen verwendet wird).
Ja, es ist ein wenig in der Beschreibung begraben :
Im Pass-Through-Modus
apachectl
können alle für diehttpd
Binärdatei verfügbaren Argumente verwendet werden .apachectl [ httpd-argument ]
Schauen wir uns also die http
Dokumentation an :
-k start|restart|graceful|stop|graceful-stop
Signale
httpd
zum Starten, Neustarten oder Stoppen.
Wenn Sie also verwenden -k <option>
, werden Sie einfach an weiterleiten httpd
, was dieses Argument benötigt.
Wenn Sie das nicht verwenden -k
, apache2ctl
suchen Sie stattdessen nach Befehlen, die es selbst verarbeitet, und die wiederum dieselben sind, die es benötigen httpd
würde.
Ein Blick auf den Quellcode zeigt dieses Verhalten, bei dem eine case
Anweisung prüft, ob das erste Argument einer der erkannten internen Befehle ist, und schließlich (als Fallback) alles weitergegeben wird httpd
.
case $ARGV in
start)
HTTPD ${APACHE_ARGUMENTS} -k $ARGV # <= note the -k here
# ...
stop|graceful-stop)
# ...
# ...
*)
$HTTPD ${APACHE_ARGUMENTS} $ARGV
ERROR=$?
esac
-k
, dannapachectl
werden die Befehle selbst behandelt, aber es tut das gleiche wiehttpd
. Wenn Sie verwenden-k
, wird der Befehl unverändert an unverändert weitergeleitethttpd
.Bearbeiten, um hinzuzufügen: Sorry, slhck-Typen schneller als ich: D.
'apache2ctl' ist eigentlich nur ein Front-End für die ausführbare Datei 'httpd' und wird in zwei Modi ausgeführt, je nachdem, ob SysV init skriptfähig sein soll oder ob Optionen an die ausführbare Datei von httpd weitergeleitet werden sollen. Das -k wird tatsächlich an httpd weitergeleitet.
http://httpd.apache.org/docs/2.2/programs/apachectl.html
Also von der httpd-Manpage http://httpd.apache.org/docs/2.2/programs/httpd.html
quelle