सेवाओं को सक्षम या अक्षम कैसे करें?

मैंने पढ़ा कि उबंटू में सेवाओं को कैसे सक्षम और अक्षम किया जाए और ऐसा लगता है कि उन्हें प्रबंधित करने की विभिन्न संभावनाएं हैं ।

मुझे मिली पहली विधि है update-rc.d स्टार्टअप में नई सेवाओं को जोड़ने के लिए, जिसका उद्देश्य है /etc/init.d फ़ोल्डर और इसकी सामग्री ।

दूसरा जो मैंने पाया वह संपादित करना है .conf में फ़ाइलें /etc/init फ़ोल्डर।

सेवाओं को सक्षम / अक्षम / जोड़ने का अनुशंसित तरीका क्या है और क्यों?

क्या आप कृपया उबंटू में एक सेवा को जोड़ने और इसे सक्षम और अक्षम करने के तरीके पर एक छोटा बुलेटप्रूफ चरण दर चरण उदाहरण दे सकते हैं?

ऐसी सेवाएं हैं जिन्हें जीयूआई (जैसे) का उपयोग करके सक्षम/अक्षम किया जा सकता है startup आवेदन) या टर्मिनल ।

टर्मिनल के लिए आपके पास कई विकल्प हैं । सबसे पहले, एक टर्मिनल खोलें (उदाहरण के लिए, डैश में टर्मिनल और उद्धरण टाइप करें, और इसे खोलें) । फिर:

अस्थायी सक्षम / अक्षम सेवाएं

सेवाओं को रोकने और शुरू करने के लिए अस्थायी रूप से (भविष्य के जूते के लिए उन्हें सक्षम / अक्षम नहीं करता है), आप टाइप कर सकते हैं service SERVICE_NAME [action]. उदाहरण के लिए:

  • sudo service apache2 stop: होगा बंद करो अपाचे सेवा रिबूट तक या जब तक आप इसे फिर से शुरू नहीं करते ।
  • sudo service apache2 start: होगा प्रारंभ करें अपाचे सेवा यह मानते हुए कि इसे पहले रोक दिया गया था ।
  • service apache2 status: आपको सेवा की स्थिति बताएगा, अगर यह या तो सक्षम है/अक्षम है/नहीं चल रहा है ।
  • sudo service apache2 restart: होगा पुनः आरंभ करें सेवा. यह सबसे अधिक उपयोग किया जाता है जब आप बदल गए हैं, एक कॉन्फ़िगरेशन फ़ाइल । इस मामले में, यदि आपने पीएचपी कॉन्फ़िगरेशन या अपाचे कॉन्फ़िगरेशन को बदल दिया है । पुनरारंभ आपको 2 कमांड लाइनों के साथ रोकने/शुरू करने से बचाएगा
  • service apache2: इस मामले में, चूंकि आपने सेवा के लिए निष्पादित करने की कार्रवाई का उल्लेख नहीं किया है, यह आपको उस विशिष्ट सेवा के लिए उपलब्ध सभी विकल्प दिखाएगा । यह पहलू सेवा के आधार पर भिन्न होता है, उदाहरण के लिए, माईएसक्यूएल के साथ यह केवल यह उल्लेख करेगा कि इसमें एक पैरामीटर गायब है । नेटवर्किंग सेवा जैसी अन्य सेवाओं के लिए यह उपलब्ध सभी विकल्पों की छोटी सूची का उल्लेख करेगा ।

Systemd

उबंटू 15.04 से शुरू होकर, अपस्टार्ट को सिस्टमड के पक्ष में पदावनत किया जाएगा । सिस्टमड के साथ सेवाओं का प्रबंधन करने के लिए हम निम्नलिखित कर सकते हैं (के माध्यम से systemctl action SERVICE पैटर्न):

  • sudo systemctl start SERVICE: सेवा शुरू करने के लिए इसका उपयोग करें । रिबूट के बाद जारी नहीं रहता है
  • sudo systemctl stop SERVICE: किसी सेवा को रोकने के लिए इसका उपयोग करें । रिबूट के बाद जारी नहीं रहता है
  • sudo systemctl restart SERVICE: किसी सेवा को पुनरारंभ करने के लिए इसका उपयोग करें
  • sudo systemctl reload SERVICE: यदि सेवा इसका समर्थन करती है, तो यह सेवा का उपयोग करने वाली किसी भी प्रक्रिया को बाधित किए बिना इससे संबंधित कॉन्फ़िगरेशन फ़ाइलों को फिर से लोड करेगी ।
  • systemctl status SERVICE: एक सेवा की स्थिति दिखाता है । बताता है कि वर्तमान में कोई सेवा चल रही है या नहीं ।
  • sudo systemctl enable SERVICE: सेवा को अगले रिबूट पर या अगले स्टार्ट इवेंट पर चालू करता है । यह रिबूट के बाद बनी रहती है ।
  • sudo systemctl disable SERVICE: अगले रिबूट या अगले स्टॉप इवेंट पर सेवा बंद कर देता है । यह रिबूट के बाद बनी रहती है ।
  • systemctl is-enabled SERVICE: जांचें कि क्या कोई सेवा वर्तमान में अगले रिबूट पर शुरू करने या नहीं करने के लिए कॉन्फ़िगर की गई है ।
  • systemctl is-active SERVICE: जांचें कि क्या कोई सेवा वर्तमान में सक्रिय है ।
  • systemctl show SERVICE: सेवा के बारे में सभी जानकारी दिखाएं ।
  • sudo systemctl mask SERVICE: किसी सेवा को लिंक करके उसे पूरी तरह से अक्षम कर दें /dev/null; आप मैन्युअल रूप से सेवा शुरू नहीं कर सकते या सेवा को सक्षम नहीं कर सकते ।
  • sudo systemctl unmask SERVICE: लिंक को हटा देता है /dev/null और सेवा को सक्षम और या मैन्युअल रूप से शुरू करने की क्षमता को पुनर्स्थापित करता है ।

अपस्टार्ट (15.04 से पदावनत)

यदि हम आधिकारिक अपस्टार्ट तरीके का उपयोग करना चाहते हैं (ध्यान दें कि, फिलहाल, सभी सेवाओं को अपस्टार्ट में परिवर्तित नहीं किया गया है), तो हम निम्नलिखित आदेशों का उपयोग कर सकते हैं:

status SERVICE - यह हमें बताएगा कि कोई परिवर्तित सेवा चल रही है या नहीं । ध्यान दें कि यह इसके पक्ष में पदावनत है start, stop, status & restart. यह हमें यह भी बताएगा कि क्या कोई सेवा अभी तक अपस्टार्ट में परिवर्तित नहीं हुई है:

एक परिवर्तित सेवा आमतौर पर वर्तमान स्थिति (शुरू, चल रही है, रोक रही है) का उत्पादन करेगी । ..) और प्रक्रिया ID. एक गैर परिवर्तित सेवा एक के बारे में एक त्रुटि देगी अज्ञात नौकरी.

कुछ शॉर्टकट केवल के साथ काम कर सकते हैं service ऊपर कमांड लेकिन नीचे दिए गए कमांड के साथ नहीं जब तक कि वे 100% अपस्टार्ट सेवाओं में परिवर्तित न हों:

  • sudo start mysql: शुरू
  • sudo stop mysql: बंद करो
  • sudo restart mysql: पुनः आरंभ करें
  • sudo status smbd: स्थिति

किसी सेवा को सक्षम / अक्षम करना

किसी सेवा को स्थायी रूप से शुरू करने या रोकने से टॉगल करने के लिए आपको इसकी आवश्यकता होगी:

echo manual | sudo tee /etc/init/SERVICE.override

जहां श्लोक manual अगले बूट पर सेवा को स्वचालित रूप से लोड करने से अपस्टार्ट बंद हो जाएगा । के साथ किसी भी सेवा .override समाप्ति मूल सेवा फ़ाइल पर पूर्वता लेगी । आप केवल बाद में मैन्युअल रूप से सेवा शुरू कर पाएंगे । यदि आप यह नहीं चाहते हैं तो बस हटा दें .override.उदाहरण के लिए:

echo manual | sudo tee /etc/init/mysql.override

माईएसक्यूएल सेवा में डाल देंगे manual मोड। यदि आप यह नहीं चाहते हैं, तो बाद में आप बस कर सकते हैं

sudo rm /etc/init/mysql.override

और सेवा को फिर से स्वचालित रूप से शुरू करने के लिए रिबूट करें । बेशक एक सेवा को सक्षम करने के लिए, सबसे आम तरीका इसे स्थापित करना है । यदि आप अपाचे, एनजीआईएनएक्स, माईएसक्यूएल या अन्य स्थापित करते हैं, तो वे स्वचालित रूप से स्थापना खत्म करने पर शुरू होते हैं और हर बार कंप्यूटर बूट होने पर शुरू हो जाएंगे । ऊपर बताए अनुसार अक्षम करने से सेवा का उपयोग होगा manual.

वर्तमान में उबंटू में एक सेवा के रूप में सॉफ्टवेयर शुरू करने के लिए वास्तव में तीन अलग-अलग तरीके हैं, SysV, अपस्टार्ट और systemd. एक सेवा को यहां पृष्ठभूमि में सिस्टम द्वारा चलाए जाने वाले प्रोग्राम के रूप में परिभाषित किया गया है, जैसा कि उपयोगकर्ता द्वारा सीधे शुरू और चलाने के विपरीत है ।

SysV

लिनक्स में सेवाएं शुरू करने का पारंपरिक तरीका एक स्क्रिप्ट को जगह देना था /etc/init.d, और फिर उपयोग करें update-rc.d आदेश (या RedHat आधारित distros, chkconfig) इसे सक्षम या अक्षम करने के लिए ।

यह आदेश सिम्लिंक बनाने के लिए कुछ हल्के जटिल तर्क का उपयोग करता है /etc/rc#.d, जो सेवाओं को शुरू करने के क्रम को नियंत्रित करता है । यदि आप चलाते हैं ls /etc/rc2.d आप आदेश देख सकते हैं कि सेवाओं को फ़ाइल नाम के साथ मार दिया जाएगा जैसे K##xxxx और फ़ाइल नामों के साथ शुरू हुआ S##xxxx. द ## में S##xxxx सेवा के लिए "प्रारंभ आदेश" का अर्थ है xxxx. इसके विपरीत, ## में K##xxxx सेवा के लिए मार आदेश का मतलब है xxxx.

के साथ एक प्रमुख मुद्दा SysV क्या यह था कि सिस्टम को बूट करते समय, सब कुछ धारावाहिक में किया जाना था, एक के बाद एक, सिस्टम बूट समय को वास्तव में धीमा करना. इसे समानांतर करने के प्रयास किए गए थे, लेकिन वे बेतरतीब थे और इसका पूरा फायदा उठाना मुश्किल था । यह मुख्य कारण था कि अपस्टार्ट बनाया गया था.

अपस्टार्ट

अपस्टार्ट में नौकरी परिभाषा फ़ाइलों का उपयोग करता है /etc/init यह परिभाषित करने के लिए कि किन घटनाओं को सेवा शुरू की जानी चाहिए । इसलिए, जब सिस्टम बूट हो रहा है, तो अपस्टार्ट विभिन्न घटनाओं को संसाधित करता है, और फिर समानांतर में कई सेवाएं शुरू कर सकता है । यह उन्हें सिस्टम के संसाधनों का पूरी तरह से उपयोग करने की अनुमति देता है, उदाहरण के लिए, डिस्क-बाउंड सेवा शुरू करके, जबकि एक अन्य सीपीयू-बाउंड सेवा चलती है, या जबकि नेटवर्क एक गतिशील आईपी पते को असाइन करने की प्रतीक्षा कर रहा है ।

आप सभी अपस्टार्ट जॉब फ़ाइलों को चलाकर देख सकते हैं ls /etc/init/*.conf

मुझे बस यहीं रुकने दो और कहो कि अगर आपको नहीं पता कि कोई सेवा क्या है, या वह क्या करती है, तो उसे अक्षम न करें!

सभी सेवाओं को अपस्टार्ट में परिवर्तित नहीं किया गया है । पिछले कुछ महीनों से कैननिकल में सर्वर टीम पर काम करते हुए, मैंने कई परिवर्तित नौकरी फ़ाइलों पर काम किया है, और सबसे अच्छा हिस्सा यह है कि यह किसी को सभी स्क्रिप्ट "जादू" से छुटकारा पाने की अनुमति देता है और बस इसमें डाल देता है सेवा शुरू करने के तरीके को परिभाषित करने के लिए यहां और वहां कुछ आदेश, और लेकिन अभी के लिए, केवल मुट्ठी भर पारंपरिक नेटवर्क सेवाएं, जैसे विद्रूप और सांबा, परिवर्तित किया गया है ।

क्या एक सेवा अपस्टार्ट-आधारित है?

यह पता लगाने के लिए कि क्या कोई सेवा अपस्टार्ट-आधारित है, आप स्थिति कमांड चला सकते हैं:

status servicename

अगर यह एक है अपस्टार्ट नौकरी, यह यह दिखाएगा:

$ status statdstatd start/running, process 942

लेकिन अगर ऐसा नहीं है, तो आप इस तरह कुछ और देखेंगे:

$ status apache2status: Unknown job: apache2

इस मामले में, apache2 में परिवर्तित नहीं किया गया है अपस्टार्ट. तो, अक्षम करने के लिए apache2 तुम बस भागो

sudo update-rc.d apache2 disablesudo service apache2 stop

अपस्टार्ट में सेवाओं (नौकरियों) को अक्षम करें

अपस्टार्ट नौकरी परिभाषाओं में एक नहीं है update-rc.d कमान। नौकरी को अक्षम करने के लिए, आपको इसे अक्षम करने के लिए सीधे नौकरी फ़ाइल को संपादित करना होगा । ऐसा करने के दो तरीके हैं ।

यदि आप अभी भी इसे मैन्युअल रूप से शुरू करना चाहते हैं, तो आपको टिप्पणी करनी होगी start on हालत। कहें कि आप इंस्टॉल करना चाहते हैं सांबा, लेकिन यह स्वचालित रूप से शुरू नहीं हुआ है । यहां नौकरी फ़ाइल है (नट्टी में):

description "SMB/CIFS File Server"author      "Steve Langasek <steve.langasek@ubuntu.com>"start on local-filesystemsstop on runlevel [!2345]respawnpre-start script    RUN_MODE="daemons"    [ -r /etc/default/samba ] && . /etc/default/samba    [ "$RUN_MODE" = inetd ] && { stop; exit 0; }    install -o root -g root -m 755 -d /var/run/sambaend scriptexec smbd -F

अक्षम करने के लिए सांबा, आप बस एक डाल सकते हैं # के सामने "start on local-filesystems". ध्यान दें कि जब यह बूट पर बैक अप शुरू नहीं होगा, तब भी आपको इसे इस बार रोकना होगा

sudo service smbd stop

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

mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled

स्टार्ट / स्टॉप श्लोक का उपयोग करके एक सेवा को अक्षम करें (11.04 तक)

अपस्टार्ट के संस्करण से शुरू होकर जो 11.04 में होगा, एक नया कीवर्ड है जो अक्षम करता है start on और stop on श्लोक: manual. तो 11.04 तक सेवा को अक्षम करने का एक और तरीका है:

echo 'manual' | sudo tee /etc/init/mysql.override# command from root shellecho manual >> /etc/init/mysql.override

आप एक बना सकते हैं override नौकरी की परिभाषा को संपादित किए बिना किसी सेवा को अक्षम करने के लिए फ़ाइल, बस डालकर manual इसमें कीवर्ड।

sysv-आर सी-conf

उपयोग करने का प्रयास करें sysv-आर सी-conf

sudo apt-get install sysv-rc-conf

और सेवाओं का प्रबंधन शुरू करने के लिए, निष्पादित करें

sudo sysv-rc-conf

जो इस तरह इंटरैक्टिव विंडो लाएगा

आप आगे का उपयोग कर पृष्ठों के माध्यम से नेविगेट कर सकते हैं Ctrl+n अगले पृष्ठ के लिए और Ctrl+p पिछले पृष्ठ के लिए । आप सेवाओं को चुनकर सक्षम और अक्षम कर सकते हैं SPACE पर वांछित runlevels.

नौकरियाँ-Admin

एक और वैकल्पिक होगा नौकरियाँ-Admin के माध्यम से स्थापित करके

sudo apt-get install jobs-admin

जो इस तरह जीयूआई भी प्रदान करता है

अधिक नौकरियां दिखाने के लिए , आपको टिक करना होगा संरक्षित नौकरियां दिखाएं इसके मेनू से ।

chkconfig

और तीसरा विकल्प होगा chkconfig,

sudo apt-get install chkconfig

यह सीएलआई के माध्यम से इस्तेमाल किया जा सकता chkconfig, चालू/बंद नौकरियों की सूची दिखा रहा है । इसके अलावा हम सिस्टम सेवाओं का उपयोग करके देख सकते हैं chkconfig –list

सेवाओं का उपयोग करके चालू किया जा सकता है

chkconfig <service> on

सेवाओं का उपयोग करके बंद किया जा सकता

chkconfig <service> off

और हम उचित शीर्षकों के साथ एक उचित इनिट स्क्रिप्ट का उपयोग करके अपनी सेवा भी जोड़ सकते हैं ।

chkconfig --add <service>

अद्यतन-आर सी।d

और एक अन्य विकल्प संदर्भित किया जा सकता यहां अपडेट-आरसी।d , संक्षेप में समझाया यहाँ.

ध्यान दें कि उबंटू सर्वर 12.04 के लिए, update-rc.d चोककॉन्फिग के बजाय प्रयोग किया जाता है ।

हममें से जो एसएसएच पर उबंटू चलाते हैं, मुझे लगता है कि सबसे अच्छा विकल्प है rcconf - एक पाठ आधारित कार्यक्रम:

sudo apt-get install rcconfsudo rcconf

टैब और तीर कुंजियों के साथ नेविगेट करें, सक्षम/अक्षम करने के लिए स्पेसबार दबाएं । परिवर्तन पुनरारंभ के दौरान लगातार होते हैं ।

स्क्रीनशॉट से उधार लिया इस blogpost, जो भी दिखाता है sysv-rc-conf - एक समान उपकरण जो आपको रनलेवल सेट करने देता है । (उन लोगों के लिए जो उन्हें बदलने की इच्छा रखने के लिए रनलेवल के बारे में पर्याप्त देखभाल करते हैं :)

दुर्भाग्य से, आरसीसीओएनएफ अपस्टार्ट (सेवाओं में सूचीबद्ध) के साथ काम नहीं करता है /etc/init/*), बस पारंपरिक तंत्र के साथ (ls -l /etc/init.d/* - जो प्रतीकात्मक लिंक नहीं हैं) ।

सौभाग्य से, कई सेवाएं जो सर्वर (अपाचे, टॉमकैट, एमडीएडीएम, बीओआईएनसी-क्लाइंट) में एसएसएच-आईएनजी करते समय प्रासंगिक होती हैं । ..) अभी तक अपस्टार्ट में नहीं ले जाया गया है ।

मुझे पता चला कि बायोनिक तक यह जीयूआई उपकरण है, चूतड़ जैसा कुछ लेकिन अपस्टार्ट के साथ संगत: नौकरियां-व्यवस्थापक

sudo apt-get install jobs-admin

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

पर एक नज़र लेने के द्वारा man 5 init एक अधिक उपयुक्त समाधान मिलेगा: ओवरराइड कॉन्फ़िगरेशन का उपयोग करना । संक्षिप्त उदाहरण: मान लें कि हमारे पास "फ़ोबार" नामक एक सेवा है, इसलिए एक फ़ाइल होगी जिसे कहा जाता है /etc/init/foobar.conf इसके अपस्टार्ट कॉन्फ़िगरेशन के साथ । अब आप उस फ़ाइल को हटाना नहीं चाहते हैं, न ही इसे संशोधित करना चाहते हैं-लेकिन न तो आप इस सेवा को चलाना चाहते हैं? तो एक जगह ओवरराइड इसके आगे फाइल करें: /etc/init/foobar.override, युक्त (वैकल्पिक रूप से विवरण के साथ शीर्षलेख और) इसके बजाय start on / stop on लाइन्स आप एक शब्द के साथ एक लाइन जगह: manual. इस तरह आप मूल रूप से उपयोग करने के लिए अपस्टार्ट को बताते हैं foobar.conf, लेकिन मैन्युअल रूप से लागू होने पर केवल उस सेवा को शुरू करने के लिए स्टार्टअप परिभाषा को ओवरराइड करें (के माध्यम से service foobar start हमारे उदाहरण में) ।

वहाँ भी है बूट-अप प्रबंधक.

स्थापित करने के लिए: sudo apt-get install bum

आगे की जानकारी: http://www.marzocca.net/linux/bum.html

मेरे लिए सबसे सरल तरीका है क्योंकि मैं केवल सीएलआई का उपयोग करता हूं update-rc.d.

रिबूट आदि पर ऑटो-स्टार्ट को सक्षम या अक्षम करने के लिए :

sudo update-rc.d <daemon|service> <enable|disable>

उदाहरण:

update-rc.d spamassassin enable

डेमॉन को रोकने या शुरू करने या उसकी स्थिति की जांच करने के लिए:

sudo service <daemon|service> <start|stop|restart|reload|force-reload|status>

उदाहरण:

sudo service spamassassin status  spamassassin.service - Perl-based spam filter using text analysis   Loaded: loaded (/lib/systemd/system/spamassassin.service; disabled; vendor preset: enabled)   Active: active (running) since Thu 2020-05-21 13:04:10 SAST; 4s ago  Process: 1928 ExecStart=/usr/sbin/spamd -d --pidfile=/var/run/spamd.pid $OPTIONS (code=exited, status=0/SUCCES Main PID: 1949 (spamd)    Tasks: 3 (limit: 2361)   CGroup: /system.slice/spamassassin.service           ├─1949 /usr/bin/perl -T -w /usr/sbin/spamd -d --pidfile=/var/run/spamd.pid --create-prefs --max-child           ├─1951 spamd child           └─1952 spamd child`  etc  etc

update-rc.d ऊपर दिखाए गए मूल से थोड़ा अधिक कर सकते हैं:

usage: update-rc.d [-f] <basename> remove       update-rc.d [-f] <basename> defaults       update-rc.d [-f] <basename> defaults-disabled       update-rc.d <basename> disable|enable [S|2|3|4|5]        -f: force

हमेशा की तरह; आप वैन संदर्भित करते हैं मैनपेज.

मैं उपयोग करता हूं Stacer:

स्टेसर एक ओपन सोर्स सिस्टम ऑप्टिमाइज़र और एप्लिकेशन मॉनिटर है जो उपयोगकर्ताओं को विभिन्न पहलुओं के साथ पूरे सिस्टम को प्रबंधित करने में मदद करता है, यह एक सिस्टम उपयोगिता में एक सब कुछ है ।

यह सेवाओं और प्रक्रियाओं को भी दिखाता है । एक पूर्ण जीयूआई सिस्टम टूलबॉक्स।

ध्यान दें कि उबंटू 14.04 का उत्तर अभी भी यहां गायब है ।

@ मार्सेलोनुकियो: उबंटू 15.04 से शुरू होकर, सिस्टमड के पक्ष में अपस्टार्ट को पदावनत कर दिया गया है ।

नेटवर्किंग के लिए कृपया देखें: How to restart the networking service? - Ask Ubuntu

यह फेडोरा 12 पर फंसे लोगों के लिए मददगार होगा और यहां उतरे हैं । मामले में लिंकरोट` चककॉन्फिग ’ वह है जिसे आप ढूंढ रहे हैं ।

ऑटो-स्टार्ट प्रोग्राम ऑटोस्टार्ट मैनिफ़ेस्ट या * ' में कॉन्फ़िगर किए गए हैं । सेवा कई स्थानों पर फ़ाइलें, साथ ही ’ इनिट में । डीयाcrontab`. देखें: upstart - How to start application after login on CentOS? - Unix & Linux Stack Exchange