लिनक्स को जानें: /etc/init.d निर्देशिका

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

यदि आप लिनक्स का उपयोग करते हैं तो आपने सबसे अधिक संभावना के बारे में सुना होगा init.d निर्देशिका। लेकिन वास्तव में यह निर्देशिका क्या करती है? यह अंततः एक काम करता है लेकिन यह आपके पूरे सिस्टम के लिए एक काम करता है, इसलिए init.d बहूत ज़रूरी है। init.d निर्देशिका में आपके सिस्टम पर विभिन्न सेवाओं के लिए कई स्टार्ट / स्टॉप स्क्रिप्ट हैं। से सब कुछ acpid सेवा X11-आम इस निर्देशिका से नियंत्रित किया जाता है। बेशक यह बिल्कुल आसान नहीं है।

अगर तुम देखो /आदि निर्देशिका आप निर्देशिका है कि फार्म में हैं मिलेगा आर सी # .D (जहाँ - एक संख्या एक विशिष्ट आरंभीकरण स्तर को दर्शाती है - 0 से 6 तक)। इनमें से प्रत्येक निर्देशिका में कई अन्य स्क्रिप्ट हैं जो प्रक्रियाओं को नियंत्रित करती हैं। ये स्क्रिप्ट या तो 'K' या 'S' से शुरू होगी। सभी 'K' स्क्रिप्ट 'S' स्क्रिप्ट से पहले चलाई जाती हैं। और जहां स्क्रिप्ट स्थित हैं उसके आधार पर यह निर्धारित करेगा कि स्क्रिप्ट कब शुरू होती है। निर्देशिकाओं के बीच सिस्टम सेवाएं एक अच्छी तरह से तेल वाली मशीन की तरह काम करती हैं। लेकिन ऐसे समय होते हैं जब आपको किसी प्रक्रिया को साफ-सुथरे तरीके से शुरू करने या रोकने की जरूरत होती है और वह भी बिना किल या किलॉल कमांड का उपयोग किए। वह जहां है /etc/init.d निर्देशिका काम आती है।

अब यदि आप फेडोरा जैसे वितरण का उपयोग कर रहे हैं तो आपको यह निर्देशिका मिल सकती है /etc/rc.d/init.d । स्थान के बावजूद, यह एक ही उद्देश्य को पूरा करता है।

किसी भी स्क्रिप्ट को नियंत्रित करने के लिए init.d मैन्युअल रूप से आपको रूट (या sudo) तक पहुँच प्राप्त करनी होगी। प्रत्येक स्क्रिप्ट को एक कमांड के रूप में चलाया जाएगा और कमांड की संरचना इस तरह दिखाई देगी:

/etc/init.d/command विकल्प

कहाँ पे आदेश चलाने के लिए और वास्तविक कमांड है विकल्प निम्नलिखित में से एक हो सकता है:

  • शुरू
  • रुकें
  • पुनः लोड करें
  • पुनः आरंभ करें
  • बल-पुनः लोड

ज्यादातर आप या तो उपयोग करेंगे चालू बंद, या पुनः आरंभ करें। इसलिए यदि आप अपना नेटवर्क बंद करना चाहते हैं तो आप कमांड जारी कर सकते हैं:

/etc/init.d/networking स्टॉप

या यदि आप अपने नेटवर्क में बदलाव करते हैं और इसे पुनः आरंभ करने की आवश्यकता है, तो आप निम्न आदेश के साथ ऐसा कर सकते हैं:

/etc/init.d/networking पुनरारंभ करें

इस निर्देशिका में कुछ अधिक सामान्य init स्क्रिप्ट हैं:

  • नेटवर्किंग
  • साम्बा
  • apache2
  • ftpd
  • sshd
  • दरबा
  • माई एसक्यूएल

बेशक आपकी निर्देशिका में अधिक बार उपयोग की जाने वाली स्क्रिप्ट हो सकती हैं - यह इस बात पर निर्भर करता है कि आपने क्या स्थापित किया है। उपरोक्त सूची एक Ubuntu सर्वर 8.10 इंस्टॉलेशन से ली गई थी, इसलिए एक मानक डेस्कटॉप इंस्टॉलेशन में कुछ कम नेटवर्किंग-टाइप स्क्रिप्ट होंगी।

लेकिन /etc/rc.local के बारे में क्या

एक तीसरा विकल्प है जिसका मैं काफी उपयोग करता था। यह विकल्प है /etc/rc.local स्क्रिप्ट। यह फाइल अन्य सभी init level स्क्रिप्ट के चलने के बाद चलती है, इसलिए यह विभिन्न कमांड्स को डालना सुरक्षित है जिन्हें आप स्टार्टअप पर जारी करना चाहते हैं। कई बार मैं इस स्क्रिप्ट में nfs जैसी चीजों के लिए बढ़ते निर्देश रखूँगा। उदाहरण के लिए, 'समस्या निवारण' स्क्रिप्ट को रखने के लिए यह एक अच्छी जगह है। उदाहरण के लिए, एक बार मेरे पास एक मशीन थी, जो किसी कारण से, सांबा शुरू नहीं करना चाहती थी। यहां तक ​​कि यह सुनिश्चित करने के लिए कि सांबा डेमॉन को बूट अप पर आरंभ करने के लिए सेटअप किया गया था। इसलिए मेरा सारा समय इसके साथ बिताने के बजाय मैंने बस लाइन लगा दी:

/etc/init.d/samba प्रारंभ

में /etc/rc.local स्क्रिप्ट और सांबा ने एक आकर्षण की तरह काम किया। आखिरकार मैं वापस आऊंगा और इस मुद्दे को शूट करूंगा।

अंतिम विचार

लिनक्स लचीला है। लिनक्स इतना लचीला है कि एक समस्या को हल करने के लिए लगभग, अनिवार्य रूप से, कई तरीके हैं। सिस्टम सेवा शुरू करना एक ऐसा ही मुद्दा है। की मदद से /etc/init.d प्रणाली (और साथ ही /etc/rc.local ) आप बहुत आराम कर सकते हैं आश्वासन दिया कि आपकी सेवा शुरू हो जाएगी।