12.10 में सिस्टम सेवाएं कैसे शुरू की जाती हैं?


12

एक चीज जिसने हमेशा मुझे उबंटू में उलझाया, वह थी कि कैसे सिस्टम सेवाएं शुरू की जाती हैं। मुझे पता है कि उबंटू अपस्टार्ट का उपयोग करता है और एसआईएसवी का समर्थन करता है, लेकिन सेवाओं को शुरू करने के लिए किसका उपयोग किया जाता है? यह तब होता है जब आप किसी सेवा के लिए "मैनुअल" शुरू करना चाहते हैं।

उदाहरण के लिए, मेरे सिस्टम पर मेरे पास /etc/init.d/<service>(SysV) और /etc/init/<service>.conf(Upstart) में निम्नलिखित सेवाओं के लिए फाइलें हैं :

acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin

इसलिए अगर मैं स्टार्टअप पर MySQL निष्पादन को अक्षम करना चाहता हूं, तो मुझे इसे अक्षम करने के लिए अपस्टार्ट तरीके या SysV तरीके का उपयोग करना होगा? इसके अलावा, मैं कैसे बता सकता हूं कि उनमें से कौन सा वास्तव में एक सामान्य सेवा शुरू करने के लिए उपयोग किया जाता है?

संपादित करें

यहाँ वास्तव में संदेह यह नहीं है कि SysV / Upstart का उपयोग करके सेवाओं को अक्षम / सक्षम कैसे करें। क्या वास्तव में मुझे भ्रमित करता है कि कुछ सेवाएं उसी समय SysV और Upstart में परिभाषित (और सक्षम) प्रतीत होती हैं। क्या उनके बीच कोई मिसाल है (जैसे अगर mysqlदोनों SysV का उपयोग करके इसे लॉन्च करने में सक्षम है)? या क्या यह मामला हो सकता है कि एक टूल दूसरे को पृष्ठभूमि में उपयोग करता है?


1
यहां दिए गए स्वीकृत उत्तर पर एक नज़र डालें: askubuntu.com/questions/133807/… में कुछ दिलचस्प लिंक हैं।
रिनजविंड

जवाबों:


2

उन सेवाओं के बारे में जो SysV और upstart दोनों में परिभाषित हैं, आमतौर पर यदि आप इसे SysV के माध्यम से पुनः आरंभ करते हैं तो आपको कुछ इस तरह दिखाई देगा:

al@al-mythtv:~$ sudo /etc/init.d/mysql restart
[sudo] password for al: 
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 29846

इसका मतलब यह है कि इन सेवाओं के लिए उपस्टार्ट को प्राथमिकता दी जाती है, और SysV कार्यान्वयन केवल एक आवरण है।

इसके अलावा, मुझे लगता है कि आपके पास निर्देशिका का अर्थ पीछे की ओर है। / etc / init अपस्टार्ट कॉन्फ़िगरेशन है, /etc/init.d SysV संगतता है, लेकिन यह इस प्रकार की सेवाओं के लिए अपस्टार्ट करने के लिए केवल सहानुभूति है।


6

यह काफी हद तक एप्लिकेशन और उसके पैकेजिंग मेंटेनर पर निर्भर करता है।

अपस्टार्ट स्क्रिप्ट के लिए एक मजबूत प्राथमिकता है क्योंकि वे घटनाओं को संभालती हैं (जो आम तौर पर एक बड़ी बात है) लेकिन बहुत सारे एप्लिकेशन के पास पर्याप्त पर्याप्त स्क्रिप्ट उपलब्ध नहीं है या एप्लिकेशन के अनुचर ने चूक (आवेदन या डेबियन) के साथ रहने के लिए चुना है ।

किसी भी तरह से, आप उस स्थिति में हैं जहाँ आपको अनुकूलन करना है।

  • अपस्टार्ट के लिए:
    • फ़ाइल को किसी ऐसी चीज़ का नाम दें जो अंत नहीं है .conf, या
    • manualफ़ाइल में जोड़ें । यह आपको मैन्युअल रूप से सेवा को लोड करने की अनुमति देगा।
  • पुरानी सेवाओं के लिए:

    update-rc.d -f <service> remove
    

यदि आपके पास /etc/init.d/कुछ के लिए एक स्क्रिप्ट है और एक /etc/init/स्क्रिप्ट है और आप जांचना चाहते हैं कि init.d संस्करण अभी भी लाइव है, तो आप इसके साथ देख सकते हैं:

ls -l /etc/rc?.d/*<service>

यदि आपको सीमलिंक का भार दिखाई देता है, तो यह पुराने SysV init में स्थापित है।


इसलिए अगर मेरे पास एक सेवा है जो SysV और Upstart (उदाहरण के लिए acpid) में सक्षम है , तो मैं यह मान सकता हूं कि यह LysV द्वारा लॉन्च किया गया है? या अगर मैं इसे निष्क्रिय करना चाहता हूं तो मुझे इसका उपयोग करने की आवश्यकता होगी update-rc.dऔर नाम बदलने की चाल?
सेलम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.