Init.d स्क्रिप्ट कैसे स्थापित करें?


71

मैं एक init.d स्क्रिप्ट स्थापित करने का प्रयास कर रहा हूं, शेड्यूलिंग कार्यों के लिए अजवाइन चलाने के लिए। यहाँ चरणों का पालन किया गया है:

  • फ़ाइल अजवाइन की प्रतिलिपि बनाई और उसे फ़ोल्डर /etc/init.d/ में चिपकाया
  • फ़ोल्डर / आदि / डिफ़ॉल्ट / में एक विन्यास फाइल अजवाइन बनाया

अब जब मैंने इसे शुरू करने की कोशिश की sudo /etc/init.d/celeryd start, तो यह त्रुटि फेंकता हैsudo: /etc/init.d/celeryd: command not found

मैं init.d स्थापित करने के तरीके के बारे में गुगली करता हूं, मुझे यह SO-प्रश्न मिला है ।

इसे जारी करने के लिए कहते हैं uname -aऔर जब मुझे यह मिलता है:

Linux capsonesystem8-desktop 3.2.0-43-generic-pae 
#68-Ubuntu SMP Wed May 15 03:55:10 UTC     
2013 i686 i686 i386 GNU/Linux

और यह भी कहते हैं कि उपयोग insservinit.d स्क्रिप्ट को सक्षम करने के लिए जैसे बर्तनों का उपयोग करें:

insserv /etc/init.d/celeryd लेकिन यह त्रुटि फेंकता है insserv: command not found

इसलिए मैंने insserv स्थापित करने की कोशिश की sudo apt-get install insserv। लेकिन यह कहते हैं कि स्थापित है:

insserv is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 222 not upgraded.

तो init.d स्क्रिप्ट कैसे स्थापित करें ?? किसी भी तरह की सहायता को आभार समझेंगे।

Update1:

जब मैंने कोशिश की:

$ sh -x /etc/init.d/celeryd start

यह कुछ प्रकट करता है errors। ऐसा इसलिए हो सकता है कि सेवा शुरू नहीं होगी।

Update2:

जब मैं दौड़ता हूं तो मैं सभी त्रुटियों को हटा देता हूं $ sh -x /etc/init.d/celeryd startलेकिन फिर भी त्रुटि sudo /etc/init.d/celeryd startफेंकता command not foundहै


मेरे पास अब जवाब देने के लिए समय नहीं है, लेकिन, यदि आप चाहते हैं कि यह आपके स्टार्टअप के हिस्से के रूप में चले, तो मुझे लगता है कि आपको विभिन्न रनलेवल निर्देशिकाओं में अपनी स्क्रिप्ट के लिए लिंक जोड़ना होगा, इसलिए लिनक्स इसे शुरू करने और रोकने के लिए हैंडल करेगा। आप। (/etc/rc डब्लू0-6 ग्रेडिंग) यह प्रक्रिया धीरे-धीरे एक नई विधि द्वारा प्रतिस्थापित की जा रही है (मुझे लगता है कि यह ऊपर की ओर है।), लेकिन मैंने उस पर ध्यान नहीं दिया। आपकी पोस्ट की लिंक इस में से कुछ को संबोधित करती है।
जो

जवाबों:


55

आपकी celerydस्क्रिप्ट संभवतः निष्पादन योग्य नहीं है, इसीलिए sudo /etc/init.d/celerydवह लौट रहा है command not found। तो, आपको पहले इसे निष्पादन योग्य बनाने की आवश्यकता है।

ऐसा करने के लिए, निम्न आदेश चलाएँ:

sudo chmod 755 /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

पहली पंक्ति अनुमतियों को बदलती है -rwxr-xr-x, और दूसरी पंक्ति यह सुनिश्चित करती है कि फ़ाइल का स्वामी और समूह स्वामी है root

एक बार यह पूरा हो जाने के बाद, मुझे लगता है कि आपको sudo /etc/init.d/celeryd startडेमॉन शुरू करने के लिए उपयोग करने की आवश्यकता होगी ।


70

जब आप स्क्रिप्ट को जगह में कॉपी करते हैं, तो इसे निष्पादन योग्य और रूट के स्वामित्व में बनाना न भूलें:

sudo chmod +x /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

एक बार जब आप इसे स्थापित कर लेते हैं, तो आप इसे बूट पर अपने आप शुरू करने के लिए सेट कर सकते हैं:

sudo update-rc.d celeryd defaults
sudo update-rc.d celeryd enable

इसे सबसे अच्छा उत्तर माना जाएगा, जो इंगित करने का कारण है update-rc.d
मच्छितारघाट

3

यदि आपको command not foundचलाते समय त्रुटि मिलती है insserv, तो आप इसे निम्न कमांड चलाकर ठीक कर सकते हैं:

sudo ln -s /usr/lib/insserv/insserv /sbin/insserv

फिर देखें insserv -hया man insservमदद के लिए।

इसके अलावा आप के साथ कोशिश कर सकते हैं:

sudo update-rc.d celeryd defaults

स्रोत: https://askubuntu.com/a/334043/147044


1

यह बूट समय पर आपके डेमॉन को ऑटोस्टार्ट करने के लिए कमांड अनुक्रम है:

sudo cd /etc/init.d
sudo chown root:root celeryd
sudo chmod 755 celeryd
sudo ln -s /usr/lib/insserv/insserv /sbin/insserv
sudo insserv celeryd
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.