"सेवा" और "/etc/init.d/" में क्या अंतर है?


113

मैं कुछ समय के लिए उबंटू फ्लेवर को बंद और चालू करने के लिए सर्वर इंस्टॉलेशन का प्रबंधन कर रहा हूं - मैं /etc/init.d/सर्विसिंग को फिर से शुरू करने के लिए काफी समायोजित हो गया हूं । अब मुझे यह संदेश मिला:

root@tatooine:~# /etc/init.d/mysql status
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql status

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the status(8) utility, e.g. status mysql
mysql start/running, process 14048

ऐसा लगता है कि उबंटू के नवीनतम एलटीएस में लाया गया है - क्यों? इसके बारे में /etc/init.d/क्या बुरा है और क्या / serviceऔर के बीच अंतर है /etc/init.d/?


3
कल का नवाब कुकबुक स्विच करने के लिए तर्कसंगत का एक अच्छा विवरण शामिल हैं।
ændrük

जवाबों:


103

/etc/init.dस्क्रिप्ट चीजों को करने का पुराना तरीका है। वे सिस्टम V मानक से आते हैं। हालांकि, उन लिपियों को केवल एक विशेष अनुक्रम में निकाल दिया जाता है, इसलिए कोई वास्तविक निर्भरता स्थापित नहीं की जा सकती है।

इसलिए, upstart को सभी /etc/init.dलिपियों के साथ upstart लिपियों (में /etc/init) के विकल्प के इरादे से विकसित किया गया है ।

service/etc/init.dलिपियों से ऊपर की ओर लिपियों के लिए चिकनी संक्रमण की अनुमति देता है । भविष्य में, जब अधिक से अधिक स्क्रिप्ट को ऊपर की ओर स्थानांतरित किया जाता है, तो सेवा अभी भी काम करेगी क्योंकि यह दोनों संभावनाएं ढूंढती है।


6
Upstart अभी चरणबद्ध होने जा रहा है, है ना?
गलत

6
एक बार योजना शुरू होने के बाद systemd अपस्टार्ट को बदल देगा - 14.04 LTS अपस्टार्ट का उपयोग करेगा। यह मार्क शटलवर्थ द्वारा घोषणा की गई थी , एक पोस्ट में जिसका नाम था दुलार
ए पैच

28

सर्विस कमांड के लिए मैन पेज भी देखें: man service

serviceएक पूर्वानुमानित वातावरण में एक स्क्रिप्ट चलाता है (कार्यशील निर्देशिका है / और केवल 2 पर्यावरण चर निर्धारित किए जाते हैं: LANG और TERM)। यह करने की क्षमता भी जोड़ता है --full-restart। इसलिए योग करने के लिए:

  1. service स्क्रिप्ट को / etc / init या /etc/init.d (upstart या System V) से चला सकते हैं
  2. service पूर्वानुमानित वातावरण में स्क्रिप्ट चलाता है।

यदि आपकी स्क्रिप्ट किसी कारण से पर्यावरण चर पर निर्भर करती है, तो "अनुमानित वातावरण" पहलू आपको समस्याएँ पैदा कर सकता है। वहाँ है कि चारों ओर पाने के लिए एक रास्ता है, लेकिन मुझे नहीं पता कि यह क्या है, और यह इस सवाल के दायरे से परे है :)


2
हाय @ जो मार्टी, यह वास्तव में अब मैं प्रयोग कर रहा हूँ समस्या है। मेरे पास एक सेवा है जो एक "DISPLAY" पर्यावरण चर पर निर्भर है जो "सेवा myservice प्रारंभ" के साथ डेमॉन शुरू करते समय मौजूद नहीं है, लेकिन "/etc/init.d/myservice start" के साथ इसे शुरू करते समय मौजूद है। इस चर को उपलब्ध करने के बारे में कोई विचार?
15
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.