Qu'est-ce que le drapeau «-k» d'apache2ctl?


11

Je cherche depuis une heure et j'ai trouvé une centaine d'exemples qui l'utilisent, mais aucune explication de ce qu'il fait. J'ai vérifié man apache2ctl; il n'explique pas non plus le drapeau k (bien qu'il l'utilise dans les exemples).

Réponses:


8

Oui, c'est un peu enfoui dans la description :

Lorsque vous agissez en mode passe-système, apachectlpeut prendre tous les arguments disponibles pour le httpdbinaire.

apachectl [ httpd-argument ]

Regardons donc httpla documentation de :

-k start|restart|graceful|stop|graceful-stop

Signaux httpdpour démarrer, redémarrer ou arrêter.

Donc, si vous utilisez -k <option>, vous passerez simplement à httpd, qui a besoin de cet argument.

Si vous n'utilisez pas le -k, apache2ctlrecherchera à la place les commandes qu'il gérera lui-même, qui sont à nouveau les mêmes que celles httpdqui le prendraient.


En regardant le code source présente ce comportement, où une caseinstruction vérifie si le premier argument est l'une des commandes internes reconnues, et enfin (comme solution de repli), tout est passé httpd.

case $ARGV in
start)
  HTTPD ${APACHE_ARGUMENTS} -k $ARGV # <= note the -k here
  # ...
stop|graceful-stop)
  # ...
# ...
*)
    $HTTPD ${APACHE_ARGUMENTS} $ARGV
    ERROR=$?
esac

Je suis nouveau dans ce domaine. Pourriez-vous m'expliquer en anglais simple ce que l'ommission du drapeau k fera réellement? Sur mon serveur Ubuntu, cela ne fait aucune différence si j'utilise le drapeau k ou non, il redémarre toujours avec succès pour autant que je sache.
BadHorsie

Ce que vous voyez est normal. Comme je l'ai dit, si vous n'utilisez pas -k, puis apachectlgérera les commandes lui-même, mais il fait la même chose que httpd. Si vous utilisez -k, la commande est transmise httpdtelle quelle.
slhck

Je ne sais toujours pas vraiment ce que cela signifie en termes de fonctionnalité, pour être honnête, mais dites-vous alors que peu importe si vous utilisez le drapeau -k ou non, cela fera la même chose de manière détournée ?
BadHorsie

1
C'est ce que je dis, oui. C'est pour des raisons historiques que les deux fonctionnent.
slhck

"peu enterré"? Pourquoi ne pas appeler cela - la documentation d'apache est vraiment nulle. Je ne pense pas que ce soit pour des raisons historiques, c'est pour des raisons de passer aussi d'autres arguments à httpd.
Palo

2

Modifier pour ajouter: Désolé, les types slhck sont plus rapides que moi: D

'apache2ctl' n'est en fait qu'un front-end pour l'exécutable 'httpd' et s'exécute en deux modes selon que vous voulez qu'il soit scriptable par SysV init ou si vous voulez passer des options à l'exécutable httpd. Le -k est en fait transmis à httpd.

http://httpd.apache.org/docs/2.2/programs/apachectl.html

Lorsqu'il agit en mode passe-système, apachectl peut prendre tous les arguments disponibles pour le binaire httpd.

apachectl [httpd-argument]

Donc, depuis la page de manuel httpd, http://httpd.apache.org/docs/2.2/programs/httpd.html

-k start | restart | graceful | stop | graceful-stop Signale httpd pour démarrer, redémarrer ou arrêter.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.