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


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

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

डेबियन जीएनयू / लिनक्स लेनी चल रहा है।


54
2018-06-26 20:21


मूल




जवाब:


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

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


52
2017-07-09 12:56



डेबियन 8 पर इसे कैसे करना है कोई विचार? sudo update-rc.d -f sunrpc remove काम नहीं करता; यह अभी भी एक रिबूट के बाद मौजूद है। - jww
डेबियन 9 यह मेरे लिए काम नहीं कर रहा था, और फिर मुझे एहसास हुआ, ओह डरप, सुडो की जरूरत है। यदि आप सूडो को भूल जाते हैं तो अपडेट-आरसीडीडी कोई प्रतिक्रिया नहीं देता है। मैंने पुष्टि की कि लिंक के साथ चले गए थे ls /etc/rc*.d - Jason Dunkelberger
आदेश उबंटू पर विफल रहा 16.04 - Stephane


Sysv-rc-conf के साथ Linux स्टार्टअप अनुप्रयोग कॉन्फ़िगर करें:

apt-get install sysv-rc-conf

जैसा कि अन्य ने बताया है, यहां भी है अद्यतन-rc.d cmd लाइन के लिए।

उदाहरण के लिए, चलाएं

update-rc.d apache2 disable

सभी रन स्तरों से apache2 को अक्षम करने के लिए।


51
2018-06-26 23:28



महान उपकरण - इसके बारे में नहीं पता था। धन्यवाद! - PEra
ध्यान दें कि यह चलने वाली सेवा को नहीं रोकेगा, यह प्राप्त करने के लिए कि आप इसे जोड़ने के लिए तैयार हैं: service foo stop या सर्वर को रीबूट करें - rubo77


कम:

इसे जल्दी करने के लिए कोई भरोसेमंद तरीका नहीं है।

लंबा:

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

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

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

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

अद्यतन करें:

"Systemd" पर स्विच करें, "initd" का विकल्प। एक डेबियन पैकेज मौजूद है, और आप इस तरह से कुछ के साथ एक सेवा अक्षम कर सकते हैं:

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

13
2018-06-03 19:39



+1 यह एक उपयोगी उत्तर है - और अगर मैं उस पर नहीं हुआ होता तो मैं बाद में चुप हो जाता - धन्यवाद! - Jack Douglas
क्या आप बस unlink xyz.service भी? - jaggedsoft
@NextLocal, मैं भूल गया कि मैंने ऐसा क्यों लिखा, लेकिन मुझे विश्वास है कि अगर किसी सेवा में सिस्टम वी इनिट स्क्रिप्ट हैं, systemd उनका उपयोग करेंगे। - तो लिंक यह कहता है कि उन्हें देखने के लिए नहीं। - Robert Siemer
ध्यान दें कि संपादन /etc/default/xyz एक जोड़ने के लिए फ़ाइल exit अगले अपग्रेड पर सही संस्करण के साथ फ़ाइल को ओवरराइट करने के लिए पैकेजर को नहीं रोकेगा। (पैकेज कॉन्फ़िगरेशन फ़ाइलों को सहेजता है, और ज्यादातर मामलों में init स्क्रिप्ट को इस तरह नहीं देखा जाता है।) इसलिए ज्यादातर मामलों में जो मदद नहीं करेंगे। - Alexis Wilke
देवुआन बचाव के लिए आता है: systemd के बजाय यह क्लासिक SysV rc.d / init.d सिस्टम को गले लगाता है (या ओपनआरसी भी अगर कोई इसके लिए चुनता है)। - Csaba Toth


इस आदेश को चलाएं

apt-get rcconf स्थापित करें

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


4
2017-08-28 10:07



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


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

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

यदि आप हमेशा इसे चलाना चाहते हैं, तो उपयोग करें 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 .

2
2018-06-26 22:56





मुझे लगता है कि यह काम करेगा: insserv -r foo


2
2017-11-15 01:36





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

आउटपुट सभी सेवाओं और यह रनलेवल जानकारी

insserv --showall

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

insserv --remove [specify_script]

1
2018-03-14 17:45





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

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


0
2017-11-06 08:05





sudo update-rc.d SERVICE disable

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

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

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

sudo service SERVICE restart

0
2017-07-01 09:46