कस्टम अपस्टार्ट सेवा को स्थापित करने का सही तरीका


51

मैं अपने सर्वर पर सेवाओं के लिए अपस्टार्ट का उपयोग कर रहा हूं। एक गोपनीय फ़ाइल लिखना और इसे रखना /etc/initकाफी आसान है, लेकिन यह पूरी तरह से स्थापित नहीं लगता है। एक के लिए, service --status-allमेरी नई सेवा को सूचीबद्ध नहीं करता है। मैं जाँच की और अगर मैं में एक लिंक बना /etc/init.dकरने के लिए /lib/init/ubstart-jobयह स्थिति में दिखाई देंगे। लेकिन मैन्युअल रूप से ऐसा करने से मुझे लगता है कि मैं इसे सही नहीं कर रहा हूं, और अन्य कॉन्फ़िगरेशन चरण भी हो सकते हैं जो नहीं किए जा रहे हैं।

अपस्टार्ट सेवा को स्थापित करने का सही तरीका क्या है जो सेवाओं से निपटने वाले सभी उपकरणों में ठीक से पंजीकृत है?


2
इस आदमी ने अपस्टार्ट सेवा का उपयोग करते हुए मेरे सवालों में से एक का जवाब दिया और एक विस्तृत विवरण दिया, यह एक कदम को इंगित कर सकता है जो कि askubuntu.com/a/278128/75967
मीर बोर्ग

1
क्या आपका मतलब था /lib/init/upstart-job?
dalore

जवाबों:


46

जब आप शुरू में / etc / init फोल्डर में एक नई conf फाइल कॉपी करते हैं तो आपको कॉल करने की आवश्यकता होती है:

initctl reload-configuration

इसके द्वारा आपका अपस्टार्ट ठीक से पंजीकृत होना चाहिए।


8
तो यह सही ढंग से काम (यानी, startऔर stopकाम) सेट करता है, लेकिन यह नौकरी को सभी स्थिति में नहीं दिखाता है। मुझे अभी भी इसे मैन्युअल रूप से जोड़ने के लिए करना था /etc/init.d/
जेम्स मैकमोहन

1
@JamesMcMahon आपको initctl listsudo के साथ कमांड चलाने की आवश्यकता है sudo initctl list:। इस तरह आप सेवाओं की पूरी सूची देखेंगे।
शाहरियार इमानोव

क्यों sudo, यह initctl सूची के उत्पादन को बदलने के लिए बिल्कुल भी प्रकट नहीं होता है।
लवशा

@JamesMcMahon, I still had to manually add it to /etc/init.d। आपको अभी भी क्या जोड़ना है? इसका मतलब है कि, X.confइसमें जोड़ी गई फ़ाइल के अलावा /etc/init, इसमें फ़ाइल जोड़ना भी आवश्यक है /etc/init.d?
केविन मेरेडिथ

@KevinMeredith, क्षमा करें, मैं अधिक विस्तृत नहीं था। 2 साल हो गए हैं और मैं बारीकियों को याद नहीं कर सकता। यदि आप कुछ init.d दस्तावेज़ीकरण को देखते हैं तो यह स्पष्ट रूप से स्पष्ट होना चाहिए।
जेम्स मैकमोहन

18

सेवा मैनुअल चेकआउट करें:

सेवा --status- सभी स्टेटस कमांड के साथ, सभी init स्क्रिप्ट्स को वर्णमाला क्रम में चलाता है। यह विकल्प केवल sysvinit नौकरियों के लिए स्थिति कहता है, ऊपर की ओर नौकरियों को initctl सूची के साथ समान तरीके से क्वेरी की जा सकती है।

(महत्व दिया)

इसलिए इसे /etc/init.d (जहां sysvinit जॉब स्थित है) से जोड़कर उस काम को पूरा किया गया। तो: इसके बजाय initctl सूची चलाने का प्रयास करें :)।


That's why adding it क्या जोड़ना? my_service.confफ़ाइल के अलावा, फ़ाइल /etc/initहोना भी आवश्यक है /etc/init.d?
केविन मेरेडिथ

उबंटू 16.04.4 LTS \\ $ initctl सूची initctl के साथ काम न करने पर: नाम "com.ubuntu.Upstart" में $ sudo initctl सूची initctl मौजूद नहीं है: Upartart से कनेक्ट करने में असमर्थ: सॉकेट / com / ubuntu / upstart से कनेक्ट करने में विफल: कनेक्शन से इनकार कर दिया
नौ

13

SysV सेवाओं के लिए

सुनिश्चित करें कि आप उबंटू में नई सेवा जोड़ते / बनाते समय निम्नलिखित चरणों का पालन करते हैं।

  1. में सेवा फ़ाइल बनाएँ /etc/init.d/<service name>
  2. chmod 700 /etc/init.d/<service name>
  3. update-rc.d <service name> defaults
  4. update-rc.d <service name> enable

अब आप में सेवा देखें

service --status-all

15
आपका उत्तर sysv से संबंधित है और ऊपर की ओर नहीं। आप इसे हटाना चाह सकते हैं।
jcomeau_ictx

3
यह वास्तव में एक उपयोगी प्रतिक्रिया है।
18

पूरी तरह से यह एक और
सीरवी

1

मैंने पाया है कि .conf फ़ाइल में एक त्रुटि कार्य को initctl में पहचानने योग्य नहीं बना सकती है। उदाहरण के लिए, setuidअपस्टार्ट संस्करण 1.3 या उससे पहले की पंक्ति में।


1

यद्यपि वर्तमान चुना हुआ उत्तर नई सेवा को अपस्टार्ट में शामिल करने के लिए सही है, यह विशेष रूप से यह पता लगाने में मददगार नहीं है कि किसी इनवाईट / इन / इन / इनवायट में विन्यास क्यों है / लोड करने में विफल हो रहा है - लापता टुकड़ा init-checkconf का उपयोग पहले सुनिश्चित करने के लिए कर रहा है आपका कॉन्फ़िगरेशन मान्य है, और फिर पुनः लोड-कॉन्फ़िगरेशन का उपयोग कर:

####Test the new config - resolving any issues before continuing:
ERROR: File /etc/init/test.conf: syntax invalid:
test.conf:35: Unterminated quoted string

####then fix and recheck:
# init-checkconf /etc/init/test.conf
File /etc/init/test.conf: syntax ok

####then reload:
# initctl reload-configuration

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