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 झंडा वास्तव में क्या करेगा? मेरे उबंटू सर्वर पर यह कोई फर्क नहीं पड़ता है कि मैं k ध्वज का उपयोग करता हूं या नहीं, यह हमेशा के रूप में जहां तक ​​मैं बता सकता हूं, सफलतापूर्वक सफलतापूर्वक पुनरारंभ होता है।
BadHorsie

आप जो देख रहे हैं वह सामान्य है। जैसा मैंने कहा, अगर आप उपयोग नहीं करते हैं -k, तो apachectlकमांड को खुद ही संभाल लेंगे, लेकिन यह वैसा ही करता है httpd। यदि आप उपयोग करते हैं -k, तो कमांड को httpdas-is पर पास किया जाता है।
slhck

मैं अभी भी वास्तव में नहीं जानता कि कार्यक्षमता के संदर्भ में इसका क्या मतलब है, ईमानदार होने के लिए, लेकिन क्या आप तब कह रहे हैं कि इससे कोई फर्क नहीं पड़ता कि आप -k फ़्लैग का उपयोग करते हैं या नहीं, यह एक राउंडअबाउट तरीके से एक ही काम करेगा ?
BadHorsie

1
यही मैं कह रहा हूँ, हाँ। यह ऐतिहासिक कारणों से है कि दोनों काम करते हैं।
slhck

"थोड़ा दफन"? ऐसा क्यों नहीं कहा जाता है - अपाचे प्रलेखन वास्तव में बेकार है। मुझे नहीं लगता कि यह ऐतिहासिक कारणों से है, httpd के अन्य तर्कों को पारित करने के कारणों के लिए भी है।
पालो

2

जोड़ने के लिए संपादित करें: क्षमा करें, मेरे से भी तेज़ टाइप करें: D

'apache2ctl' वास्तव में 'httpd' निष्पादन योग्य के लिए केवल एक फ्रंट-एंड है और दो मोड में चलता है, इस पर निर्भर करता है कि क्या आप इसे SysV init स्क्रिप्ट करने योग्य चाहते हैं या यदि आप httpd निष्पादन योग्य के लिए पास-थ्रू विकल्प चाहते हैं। -K वास्तव में httpd से होकर गुजरता है।

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

पास-थ्रू मोड में अभिनय करते समय, अपाचेक्टल httpd बाइनरी के लिए उपलब्ध सभी तर्कों को ले सकता है।

अपाचेक्टल [httpd- तर्क]

इसलिए httpd मैन पेज से http://httpd.apache.org/docs/2.2/programs/http://.html

-k स्टार्ट | रिस्टार्ट | ग्रेसफुल | स्टॉप | ग्रेसफुल-स्टॉप सिग्नल httpd को स्टार्ट, रिस्टार्ट या स्टॉप।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.