सभी रनवे पर शुरू करने से एक सेवा को अक्षम करें?


61

मेरे पास एक सेवा है fooजो वर्तमान में रनवेल 3 और इसके बाद के संस्करण पर शुरू होती है। मैं इसका उपयोग किए बिना ऐसा करने से कैसे रोक सकता हूं update-rc.d foo stop 3 ., जो (अगर मैं इसे सही तरीके से समझता हूं) प्रत्येक रनवेल परिवर्तन पर सेवा को बंद कर देगा।

(यानी।, अगर मैं रनलेवल 1 पर था और सक्षम था foo, तो जब मैं रनलेवल 3 में बदल गया तो यह अक्षम हो जाएगा, नहीं?)

रनिंग डेबियन जीएनयू / लिनक्स लेन।

जवाबों:


57

"स्टॉप" शब्द डेमॉन को शुरू होने से नहीं रोकता है, बल्कि निर्दिष्ट रनवे में प्रवेश करते समय इसे बंद कर देता है।

यदि आप किसी एकल रनलेवल से केवल एक सेवा / डेमॉन को निकालना चाहते हैं, update-rc.dजैसा कि bei freiheit द्वारा बताया गया है या केवल सिमिलिंक को /etc/rcX.d/वहां से हटा दें , जहां X आपका रनवे है। यदि आप नहीं चाहते कि सेवा स्वचालित रूप से शुरू हो, update-rc.d -f foo removeतो यह चाल चलेगी।


2
किसी भी विचार यह डेबियन 8 पर कैसे करें? sudo update-rc.d -f sunrpc removeकाम नहीं करता; रिबूट के बाद भी मौजूद है।

डेबियन 9 यह मेरे लिए काम नहीं कर रहा था, और फिर मुझे एहसास हुआ, ओह derp, sudo की जरूरत है। अगर आप sudo को भूल जाते हैं तो update-rc.d कोई प्रतिक्रिया नहीं देता है। मैंने पुष्टि की कि लिंक के साथ चला गया थाls /etc/rc*.d
जेसन डंकलबर्गर

आदेश उबंटू पर विफल रहा16.04
स्टीफन

सुनिश्चित करें कि आप सही सेवा का नाम पास करते हैं, अपडेट-आरडीडी आपको कोई प्रतिक्रिया नहीं देता है यदि यह मौजूद नहीं है।
marcovtwout

यदि आप इसे बाद में फिर से सक्षम करना चाहते हैं तो क्या होगा? नीचे @ "अभी नहीं" का उत्तर बेहतर है, क्योंकि आप अक्षम कर सकते हैं और फिर से सक्षम कर सकते हैं। update-rc.d apache2 disable
वादी एम।

54

Sysv-rc-conf के साथ लिनक्स स्टार्टअप एप्लिकेशन कॉन्फ़िगर करें :

apt-get install sysv-rc-conf

जैसा कि अन्य लोगों ने बताया है, यहाँ भी cmd लाइन के लिए अपडेट-rc.d है

उदाहरण के लिए, भागो

update-rc.d apache2 disable

अपाचे 2 को सभी रन स्तरों से निष्क्रिय करने के लिए।


महान उपकरण - इसके बारे में पता नहीं था। धन्यवाद!
पेरा

1
ध्यान दें कि यह चल रही सेवा को बंद नहीं करेगा, यह हासिल करने के लिए कि आप इसे जोड़ने के लिए: service foo stopया सर्वर को रिबूट करें
rubo77

15

कम:

जल्दी से ऐसा करने का कोई विश्वसनीय तरीका नहीं है।

लंबा:

वर्तमान डेबियन (2012-06-01 के अनुसार डेबियन अस्थिर) वर्तमान में सेवा / डेमॉन को लगातार अक्षम करने का कोई विश्वसनीय संक्षिप्त तरीका नहीं है। - क्योंकि एक डेमॉन पैकेज का अपग्रेड बिना शर्त “/etc/init.d/package पुनरारंभ” चलाता है, जिससे यह रनलेवल के लिए अक्षम है या नहीं।

यह सुनिश्चित करने के लिए कि एक डेमॉन शुरू नहीं होता है, आप कर सकते हैं:

  • इसकी स्थापना रद्द करें
  • /etc/init.d/xyz स्क्रिप्ट का स्थानीय डायवर्ट बनाएं (इस तरह, कोई टूल नहीं मिलेगा)
  • उस स्क्रिप्ट के शुरुआती निकास को भड़काने के लिए संबंधित पैकेज की एक कॉन्फिग फ़ाइल का उपयोग / दुरुपयोग करें (जैसे कि init स्क्रिप्ट से इसे सॉर्ट किया गया है)
  • पूर्व निर्धारित "आधिकारिक" तरीकों के लिए उस init- स्क्रिप्ट में देखो कि डेमॉन शुरू नहीं करने के लिए

Debian में init स्क्रिप्ट के लिए कुछ init-policy-some कदम है, जो इस लापता कार्यक्षमता को भरने वाला था। - मैंने इसका उपयोग करने की कोशिश की, इसे जटिल पाया, एक बग पाया, और फिर कभी इसे नहीं छुआ।

अपडेट करें:

"Initd" के विकल्प के लिए "systemd" पर जाएँ। डेबियन पैकेज मौजूद है, और आप किसी सेवा को इस तरह से अक्षम कर सकते हैं:

cd /etc/systemd/system
ln -s /dev/null xyz.service

1
+1 यह एक ऐसा उपयोगी उत्तर है - और यदि मैं इस पर नहीं हुआ होता तो मैं बाद में स्तब्ध रह जाता - धन्यवाद!

क्या आप भी कर सकते हैं unlink xyz.service?
दांतेदार

@NextLocal, मैं भूल गया कि मैंने ऐसा क्यों लिखा है, लेकिन मेरा मानना ​​है कि अगर किसी सेवा में सिस्टम V init स्क्रिप्ट है, तो systemdउनका उपयोग करेगा। - तो लिंक यह बताता है कि उन्हें नहीं देखना चाहिए।
रॉबर्ट सिएमर

ध्यान दें कि /etc/default/xyzएड को जोड़ने के लिए फ़ाइल को एडिट करने exitसे पैकर को अगले अपग्रेड पर सही संस्करण के साथ फाइल को ओवरराइट करने से नहीं रोका जा सकेगा। (पैकेज कॉन्फ़िगरेशन फ़ाइलों को बचाता है, और ज्यादातर मामलों में इनिट स्क्रिप्ट को ऐसे नहीं देखा जाता है।) इसलिए ज्यादातर मामलों में यह मदद नहीं करेगा।
एलेक्सिस विलके

देवुआन बचाव में आता है: सिस्टमड के बजाय यह क्लासिक SysV rc.d / init.d सिस्टम (या ओपन आर्क के साथ-साथ अगर कोई उस के लिए विरोध करता है) को गले लगाता है।
सेसाबा टोथ

5

यह आदेश चलाएँ

apt-get install rcconf

एक बार स्थापित होने के बाद, SSH में rcconf चलाएं और आपको एक डायलॉग बॉक्स प्राप्त होगा जिसमें बूट पर चलने के लिए सभी सेवाएँ प्रदर्शित होंगी। विशेष को अक्षम / सक्षम करने के लिए स्पेस दबाकर लोगों का चयन करें और आप कर रहे हैं, ओके पर क्लिक करें और यह सेवा अगले बूट के साथ फिर से शुरू करने के लिए परेशान नहीं करेगी। वर्षों से इसका उपयोग किया जा रहा है। मेरे जैसे डेबियन / उबंटू उपयोगकर्ताओं के लिए बहुत आसान उपकरण।


1,2,3 के रूप में आसान! इस छोटे कमांड लाइन टूल के लिए धन्यवाद।
डैनियलवेर्नी

2

मैं उलझन में हूँ कि आप क्या हासिल करने की कोशिश कर रहे हैं।

क्या रन स्तर आप में चल रहे फू चाहते हैं?

यदि आप हमेशा इसे चलाना चाहते हैं, तो उपयोग करें update-rc.d foo defaults; यह 0, 1 और 6 में रोक देगा, जबकि इसे 2, 3, 4 और 5. में छोड़ते हुए (1 को कुछ भी नहीं चलाना चाहिए लेकिन शेल, 0 और 6 रुका हुआ और रिबूट होता है)

यदि आप यह निर्दिष्ट करना चाहते हैं कि कौन से रन स्तर में चलना है:

update-rc.d foo stop 0 1 6 3 . start 2 4 5 .


1

Debian7 से insserv का उपयोग करना शुरू करें

सभी सेवाओं को आउटपुट करें और यह सूचना को गति प्रदान करता है

insserv --showall

सूचीबद्ध स्क्रिप्ट को सभी रनवे से हटा दें

insserv --remove [specify_script]

0

उबंटू का बूटअप मैनेजर एक तरह से sysv-rc-conf light है , एक अधिक अनुकूल, GUI संस्करण है, और इस धागे को पढ़ने वाले कई लोग इसकी सराहना करेंगे।

http://www.marzocca.net/linux/bum.html


0

एक लाल टोपी आधारित प्रणाली पर आप उपयोग कर सकते हैं

chkconfig httpd off
chkconfig httpd --del

सर्वर को रनवे से हटाने के लिए

डेबियन आधारित प्रणाली पर सभी सेवाओं को /etc/rc?.d/ निर्देशिका में मिली फ़ाइलों द्वारा शुरू किया जाना चाहिए, फिर इन फ़ाइलों को /etc/init.d/ निर्देशिका में संबंधित फ़ाइलों के लिए एक प्रतीकात्मक लिंक दिया जाए। यदि आप किसी सेवा के लिए डिफ़ॉल्ट रूप से शुरू नहीं करना चाहते हैं, तो आप /etc/rc?.d निर्देशिका से उसका नाम बदल सकते हैं / हटा सकते हैं और आपका परिवर्तन पैकेज उन्नयन पर संरक्षित किया जाएगा जब तक कि प्रारंभ में से एक लिंक अभी भी एक में दिखाई देता है अन्य (3,4 और 5) निर्देशिका। या आप लिंक को बदलने के लिए अपडेट- rc.d कमांड का उपयोग कर सकते हैं और यदि आप सेवा शुरू करना चाहते हैं तो आप /etc/init.d/service_name का उपयोग कर सकते हैं यदि आप प्रारंभ को छोड़ देते हैं तो यह समाप्त हो जाएगा आपको ऐसे विकल्प दिए जा सकते हैं जिनका उपयोग स्टॉप, रिस्टार्ट, रीलोड की तरह किया जा सकता है ...

मुझे लगता है कि आप इसे निष्क्रिय करने के लिए sysv-rc-conf का उपयोग कर सकते हैं।


सवाल को डेबियन को टैग किया जाता है, फेडोरा या रेड हैट को नहीं।

0
sudo update-rc.d SERVICE disable

यदि आप रन स्तर निर्दिष्ट करना चाहते हैं।

sudo update-rc.d SERVICE disable|enable [S|2|3|4|5]

सेवा का नाम कार्यक्रम में बदलना याद रखें ।

sudo service SERVICE restart

0

आप स्टार्टअप स्क्रिप्ट को कहीं और बैकअप क्यों नहीं देते हैं और इसे /etc/init.d/ में निकालते हैं? अगर अपडेट- rc.d काम नहीं करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.