Cos'è il flag "-k" di apache2ctl?


11

Ho cercato per un'ora e ho trovato un centinaio di esempi che lo usano, ma nessuna spiegazione di ciò che fa. Ho controllato man apache2ctl; non spiega neanche il flag k (anche se lo usa negli esempi).

Risposte:


8

Sì, è un po 'sepolto nella descrizione :

Quando agisce in modalità pass-through, apachectlpuò prendere tutti gli argomenti disponibili per il httpdbinario.

apachectl [ httpd-argument ]

Quindi diamo un'occhiata alla httpdocumentazione di allora:

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

Segnali httpdper l'avvio, il riavvio o l'arresto.

Quindi, se si utilizza -k <option>, sarà sufficiente passare a httpd, che ha bisogno di questo argomento.

Se non si utilizza il -k, apache2ctlcercherà invece i comandi che gestirà se stesso, che sono di nuovo gli stessi di quelli httpdnecessari.


Guardando il codice sorgente si manifesta questo comportamento, in cui caseun'istruzione verifica se il primo argomento è uno dei comandi interni riconosciuti, e infine (come fallback), tutto è passato httpd.

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

Sono nuovo di questo. Potresti spiegarmi in parole povere cosa farà effettivamente la bandiera k? Sul mio server Ubuntu sembra non fare alcuna differenza se uso o meno il flag k, si riavvia sempre correttamente per quanto posso dire.
BadHorsie,

Quello che vedi è normale. Come ho detto, se non si utilizza -k, quindi apachectlgestirà i comandi stessi, ma fa lo stesso di httpd. Se si utilizza -k, il comando viene passato così httpdcom'è.
slhck,

Non so ancora cosa significhi in termini di funzionalità, a dire il vero, ma stai dicendo che non importa se usi il flag -k o no, farà la stessa cosa in modo circolare ?
BadHorsie,

1
Questo è quello che sto dicendo, sì. È per ragioni storiche che entrambi funzionano.
slhck,

"poco sepolto"? Perché non chiamarlo: la documentazione di Apache fa davvero schifo. Non penso che questo sia per ragioni storiche, è per ragioni di passare anche altri argomenti a httpd.
Palo

2

Modifica per aggiungere: mi dispiace, slhck digita più velocemente di me: D

'apache2ctl' è in realtà solo un front-end per l'eseguibile 'httpd' e funziona in due modalità a seconda se si desidera che sia eseguibile tramite script SysV init o se si desidera passare le opzioni all'eseguibile httpd. Il -k viene effettivamente passato a httpd.

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

Quando agisce in modalità pass-through, apachectl può accettare tutti gli argomenti disponibili per il binario httpd.

apachectl [argomento-httpd]

Quindi dalla pagina man httpd, http://httpd.apache.org/docs/2.2/programs/httpd.html

-k start | restart | graceful | stop | graceful-stop Segnala a httpd l'avvio, il riavvio o l'arresto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.