मैं स्टार्टअप पर चलाने के लिए किसी सेवा को कैसे कॉन्फ़िगर कर सकता हूं


244

मेरे पास एक डेमन है जो ठीक चलता है अगर मैं इसे मैन्युअल रूप से serviceकमांड के साथ शुरू करता हूं :

ricardo@ricardo-laptop:~$ sudo service minidlna start                   
 * Starting minidlna minidlna                                                              [ OK ] 

लेकिन यह पीसी स्टार्ट रिबूट होने पर ऑटो स्टार्ट करने के लिए कॉन्फ़िगर नहीं किया गया है।

यदि कोई पीसी में लॉग इन नहीं है, तो मैं इसे स्वचालित रूप से शुरू करने के लिए कैसे कॉन्फ़िगर कर सकता हूं?


@ user154721 ऑटोस्टार्ट कार्य करने के लिए आपने अपडेट-rc.d में क्या तर्क दिए? मैं विभिन्न विकल्पों की कोशिश की है, लेकिन किसी भी भाग्य नहीं था।
बेनीबैन

ऑटो-स्टार्ट प्रोग्राम autostartमैनिफ़ेस्ट में या *.serviceकई स्थानों पर फ़ाइलों में कॉन्फ़िगर किए गए हैं , साथ ही साथ init.dया में भी crontab। देखें: unix.stackexchange.com/a/525845/43233
Noam Manos

जवाबों:


281
sudo update-rc.d minidlna defaults

इससे सेवा को स्वचालित स्टार्टअप प्रणाली में जोड़ा जाना चाहिए। लेकिन अगर आपको मिलता है:

System start/stop links for /etc/init.d/minidlna already exist.

आज्ञा करो

sudo update-rc.d minidlna enable

पुनश्च : आगे के विवरण के लिए कमांड टाइप करके अपडेट- rc.d के लिए मैन पेज देखेंman update-rc.d


7
धन्यवाद, लेकिन क्या होगा अगर मुझे उस कमांड को चलाने पर यह आउटपुट मिलता है ?:System start/stop links for /etc/init.d/minidlna already exist.
रिकार्डो रेयेस

1
अगर minidlna किसी भी logfile को नहीं लिखता है तो आप उसे किसी भी स्थान पर नहीं पाएंगे। क्या यह शायद विफल हो जाता है क्योंकि इसे शुरू करने पर कोई नेटवर्क कनेक्शन नहीं है? कॉन्फ़िगरेशन को देखने की कोशिश करें कि क्या यह डीबगिंग और / या लॉगिंग पर संभव है कि क्या गलत है।
LassePoulsen

8
@RicardoReyes sudo update-rc.d -f minidlna removeमौजूदा लिंक को हटाने के लिए उपयोग करते हैं ।
डॉगवॉटर

5
मुझे नीचे त्रुटि अद्यतन-आरआरडी मिल रहा है: /etc/init.d/usermanage: फ़ाइल मौजूद नहीं है
रिज़वान पटेल

2
मैं भी हूं, वही त्रुटि मिली update-rc.d: /etc/init.d/mongod: file does not exist। फिर, sudo systemctl enable mongod.serviceमेरे लिए काम किया।
खोजकर्ता

36

कभी-कभी आपको बूट प्रक्रिया पर स्क्रिप्ट चलाने की आवश्यकता होती है, उदाहरण के लिए बूट प्रक्रिया पर एक iptables कॉन्फिग चलाएं। इसलिए आपको स्क्रिप्ट को मैन्युअल रूप से हर रिबूटिंग को चलाने की आवश्यकता नहीं है।

आप उबंटू में बूट प्रक्रिया पर अपनी स्क्रिप्ट को /etc/init.d/rc.localफाइल में जोड़कर चला सकते हैं । नीचे दिए गए चरणों को देखें।

  1. /etc/rc.localइस आदेश के साथ फ़ाइल खोलें :

    vim /etc/rc.local
    
  2. अपनी स्क्रिप्ट जोड़ें जिसे आप बूट प्रक्रिया पर चलाना चाहते हैं, उदाहरण के लिए:

    sh /home/ivan/iptables.sh 
    echo 'Iptable Configured!'
    
  3. उस फ़ाइल में शामिल टिप्पणियों की समीक्षा करें और सुनिश्चित करें कि एक निकास 0 अंत में है।

  4. फ़ाइलों को सहेजें। और आपकी स्क्रिप्ट बूट प्रक्रिया पर चलेगी।


2
उबंटू 12.04 में /etc/init.d/rc.local की टिप्पणियाँ "लघु-विवरण: भागो /etc/rc.local अगर यह मौजूद है", तो शायद /etc/rc.local में स्क्रिप्ट जोड़ना बेहतर विचार होगा?
सांग्युन ली

क्या यह विधि सेवा के लिए "शटडाउन" आदेश जारी करेगी या बस ओएस शटडाउन पर प्रक्रिया को मार देगी?
वादिम चेकन

वादिम, r.local बस बूट पर चलाया जाता है, शटडाउन पर कुछ भी हासिल नहीं होता है। इस प्रक्रिया को संभवतः OS द्वारा शटडाउन पर मार दिया जाएगा।
वोबाइड

1
FYI करें: rc.localबनाम इसे init में जोड़ने के बीच का अंतर यह है कि rc.local को init स्टार्टअप अनुक्रम के अंत में निष्पादित किया जाता है, बल्कि इसके भाग के रूप में
BobTuckerman

35
  • स्टार्टअप पर डेमॉन शुरू करने के लिए:

    update-rc.d service_name defaults
    
  • दूर करना:

    update-rc.d -f service_name remove
    

चूक => डिफ़ॉल्ट रन स्तर 2,3,4 और 5

उदाहरण:

update-rc.d tomcat7 defaults

1
जब मैं यह कमांड करता हूं, तो मुझे "पहले से मौजूद /etc/init.d/tomcat7 के लिए सिस्टम स्टार्ट / स्टॉप लिंक मिलते हैं"। हालाँकि, जब मैं रिबूट करता हूं, तो यह टॉमकैट शुरू नहीं करता है, मुझे हमेशा "सर्विस टॉमकैट 7 स्टार्ट" करना पड़ता है।
जॉन लिटिल

मेरे मामले में sudo update-rc.d myservice डिफ़ॉल्ट हमेशा बिना किसी आउटपुट के पूरा होता है और सेवा बूट-अप पर या sudo सेवा के साथ शुरू नहीं होगी myservice प्रारंभ जो चुपचाप भी पूरी होती है। हालाँकि, sudo /etc/init.d/myservice काम शुरू करता है
21

13

Ubuntu 15.10 के बाद से (सम्मान। डेबियन 8 "जेसी"), आपको स्टॉक minidlnaपर चलने के लिए अपनी सेवा को कॉन्फ़िगर करने के लिए निम्न कमांड का उपयोग करना होगा :

sudo systemctl enable minidlna.service

और इसे बूट समय पर शुरू करने से फिर से अक्षम करने के लिए:

sudo systemctl disable minidlna.service

यह सभी सेवा नाम संदर्भों के साथ काम करता है जिन्हें आप पा सकते हैं ls /lib/systemd/system/*.service

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