"सेवा पुनरारंभ" और "सेवा पुनः लोड" के बीच क्या अंतर है


73

मैं service restart [someservice]और के बीच के अंतर को समझने की कोशिश कर रहा हूं service reload [someservice]। मैं समझता हूं कि "पुनः आरंभ" सेवा को पुनरारंभ करता है जबकि "पुनः लोड" कॉन्फ़िगरेशन को फिर से लोड करता है, लेकिन मुझे यह अच्छी तरह से यह निर्धारित करने के लिए कि मुझे एक दिए गए संदर्भ में उपयोग करना चाहिए के व्यावहारिक निहितार्थों को समझ में नहीं आता है।

एक उदाहरण: मैंने जो पोस्टग्रेएसक्यूएल स्थापित करने के लिए पढ़ा है, उसमें से अधिकांश मार्गदर्शिकाएँ कहती हैं कि, एक बार मैंने पोस्टग्रैसक्ल्.कॉन्फ़ और pg_hba.conf को दूरस्थ कनेक्शन की अनुमति देने के लिए संपादित किया है, तो मुझे जारी करना चाहिए sudo service postgresql restart। हालांकि, अगर मैं अनुमान लगा रहा था कि ऊपर दिए गए विवरण के आधार पर मैं "रीलोड" चुनूंगा।

मामले में यह मायने रखता है, मैं उबंटू 11.10 पर हूं - हालांकि मैं उम्मीद कर रहा हूं कि आमतौर पर जितना संभव हो सके स्पष्टीकरण लागू करें।


2
कुछ साल पहले, मैं कई हज़ार उपयोगकर्ताओं के साथ एक सर्वर चला रहा था। अपाचे को पुनः आरंभ करना किसी भी कारण से तेज नहीं था, अपाचे (कारणों) को पुनः आरंभ करने में लगभग 3 मिनट का समय लगेगा। किसी भी तरह, अगर सर्वर 3 मिनट के लिए डाउन होता तो मेरे बॉस को लगभग 800 फोन कॉल मिलते। सर्विस रीलोड के साथ, 0 फोन कॉल। फर्क पड़ता है।
j0h

जवाबों:


41

क्या आप ने कहा सही है, तो reloadसेवा इसके विन्यास फाइल को फिर से लोड करने के लिए कहता है। इसका अर्थ है कि कॉन्फ़िगरेशन को फिर से लोड करने के लिए पर्याप्त होना चाहिए; हालाँकि कुछ ऐसी सेवाएँ हो सकती हैं जो "नियम का पालन नहीं करती हैं" या जो कि कॉन्फिगर फाइल को पुनः लोड नहीं करेगी। इसके कारण आप शायद अधिक सुरक्षित हैं restart। मैं व्यक्तिगत रूप से उपयोग नहीं करता postgresql, इसलिए मुझे नहीं पता।


1
इस बीच, हैreload-or-restart
Suuuehgi

PostgreSQL के लिए, आप पुनः लोड के साथ /etc/postgresql/version/main/postgresql.conf में परिवर्तन लागू कर सकते हैं। Pg_hba.conf में परिवर्तन लागू करने के लिए पुनः आरंभ करने की आवश्यकता होती है।
ईदन मेलन

63
  • पुनरारंभ = बंद + शुरू
  • पुनः लोड करना = कॉन्फ़िगरेशन फ़ाइलों को फिर से पढ़ना जारी रखें।

8

सभी सेवाओं का समर्थन नहीं reload। जो लोग ऐसा करते हैं, उनके लिए यह आम तौर पर पुनः आरंभ करने के लिए बेहतर होता है (यानी पुनः लोडिंग कम या कम डाउनटाइम का कारण बनता है)।

डेबियन पॉलिसी मैनुअल निर्दिष्ट करता है कि प्रत्येक /etc/init.d/स्क्रिप्ट को एक force-reloadकार्रवाई का समर्थन करना चाहिए , जिसका अर्थ है कि reloadयदि सेवा इसका समर्थन करती है, और restartयदि सेवा पुनः लोड करने का समर्थन नहीं करती है।

मुझे यकीन नहीं है कि यह कैसे आधुनिक उबंटू अपस्टार्ट दुनिया में अनुवाद करता है।


1
डेबियन पॉलिसी मैनुअल वास्तव में उपयोगी लिंक था, धन्यवाद।
पैच

1
सबसे अधिक समर्थन पुनः लोड, यदि सिस्टम सेवा के माध्यम से नहीं, सोचा /etc/init.d/SomeProgram पुनः लोड
j0h

4

प्रणाली के साथ अपने अनुभव के साथ عبد النور التومي उत्तर का विस्तार करने के लिए ।

सिस्टमैड में जब भी कोई प्रक्रिया शुरू की जाती है तो उसे सिस्टमड संदर्भ में चलाया जाता है, इसका सबसे स्पष्ट उदाहरण इसकी इकाई फ़ाइल में परिभाषित पर्यावरण चर के साथ है।

इसलिए जब आप एक systemctl reload [someservice]संकेत भेजते हैं तो यह सेवा को संकेत देता है कि यदि वह समर्थित है तो खुद को शान से पुनः लोड करने के लिए। यदि नहीं, तो प्रक्रिया केवल संकेत की अनदेखी करेगी। यह हालांकि विन्यास योग्य है।

इनायत से मेरा क्या मतलब है? नए कर्मचारियों को नए कॉन्फ़िगरेशन या कोड के साथ शुरू करने और पुराने श्रमिकों को रोकने के लिए क्योंकि वे वर्तमान अनुरोधों को पूरा करना चाहते हैं।

और यदि आप systemctl restart [someservice]इसे बनाते हैं तो यह बता देगा कि सेवा को बंद करने के लिए, वर्तमान प्रणाली के संदर्भ को नष्ट करने के लिए, एक नया निर्माण करें और सेवा को फिर से चलाएं। यह उदाहरण के लिए सिस्टम चर के संदर्भ में पर्यावरण चर को फिर से लोड करने के लिए समझ में आता है या यदि कोई पुनः लोड समर्थित नहीं है।

आशा है कि यह थोड़ा स्पष्ट करता है और अगर मैं किसी चीज में गलत हूं तो कृपया मुझे बताएं।


0

वर्तमान में यदि किसी सेवा को किकिंग की आवश्यकता है (जैसे एक कॉन्फ़िगर फ़ाइल बदली गई) तो आप इस सेवा को सूचित कर सकते हैं, लेकिन यह फिर से शुरू होता है। यह अच्छा होगा यदि सेवा पहले से ही चल रही थी, तो एक पुनः लोड किया गया था (हालांकि मुझे लगता है कि कुछ सेवाओं के लिए बाध्य हैं जो कुछ फ़ाइलों के लिए पुनरारंभ की आवश्यकता होती है, दूसरों के लिए पुनः लोड)।

सबसे जटिल उदाहरण मैं सोच सकता हूं कि अपाचे जैसा कुछ है। आम तौर पर आप इसे बस फिर से लोड करने के लिए कह सकते हैं, हालांकि कभी-कभी आपको इसके बजाय पुनरारंभ करने का अनुरोध करने की आवश्यकता होती है (यदि आप उदाहरण के लिए मॉड्यूल जोड़ते / हटाते हैं)।


0

पुनः लोड और पुनरारंभ के बीच बड़े अंतर के लिए पोस्टग्रैज एक अच्छा उदाहरण है, क्योंकि बाद में सभी डेटाबेस-क्लाइंट को डिस्कनेक्ट करना पड़ता है।

जब कनेक्शन रोलबैक नहीं होना चाहिए, तो आप पहले pg_ctlcluster का उपयोग करके "--force" के बिना सेवा को रोक सकते हैं ।

में /etc/postgres/{version}/{dbname}/postgresql.conf और कम से http://www.postgresql.org/docs/manuals/ हर पैरामीटर की तरह "यह पैरामीटर केवल सर्वर शुरू में सेट किया जा सकता एक टिप्पणी है। "

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