Upstart के साथ डेमन शटडाउन कमांड कैसे निर्दिष्ट करें?


9

एक upstart कॉन्फ़िगरेशन में मैं कैसे परिभाषित करता हूं कि किसी सर्वर को बंद करने के लिए किस कमांड का उपयोग किया जाना चाहिए। आइए कहते हैं कि मेरे पास डेमन है जिसमें दो अलग-अलग प्रक्रियाएं हैं।

  • स्टार्टअप.श - सर्वर शुरू करने के लिए
  • shutdown.sh - सर्वर बंद करने के लिए

मान लीजिए मेरे पास एक upstart फ़ाइल है जो इस तरह दिखती है।

description "Some Example Service"
author "Me"

start on runlevel [2345]
stop on runlevel [016]
respawn

exec startup.sh 

shutdown.shसर्वर को बंद करते समय मुझे यह कैसे बताना चाहिए कि इसे कॉल करना चाहिए ? ऊपरवाला आमतौर पर एक डेमन को बंद करने की उम्मीद कैसे करता है?

जवाबों:


10

execप्रक्रिया शुरू करने के लिए उपयोग करना ठीक है, लेकिन इसे रोकते समय, यदि आपको किसी विशिष्ट स्क्रिप्ट या कमांड के सेट को चलाने की आवश्यकता है, तो आप pre-stopश्लोक का उपयोग कर सकते हैं ।

pre-stop exec shutdown.sh

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

नौकरी रोकना इसमें SIGTERM को भेजना है। यदि ऐसा कुछ है जो SIGTERM से पहले किया जाना है, तो इसे यहाँ करें। यकीनन, सेवाओं को बहुत अच्छी तरह से SIGTERM को संभालना चाहिए, इसलिए यह आवश्यक नहीं होना चाहिए।

अगर वहाँ कुछ भी महत्वपूर्ण है, डिस्क के लिए एक फ्लश की तरह, और मार समय बढ़ाने के लिए एक विकल्प नहीं है, पूर्व रोक यह करने के लिए एक बुरी जगह नहीं है

जब आप नौकरी रोकते हैं तो पूरे वर्कफ़्लो के लिए इस अनुभाग को पढ़ें । जब प्री-स्टॉप चलाया जाता है, तो नोटिस करें और बाद में प्रक्रिया को एक सिग्नल कैसे भेजा जाता है, जो कि सामान्य रूप से नौकरियों को रोकने के लिए अपस्टार्ट हैंडल करता है।

मेरा स्रोत आधिकारिक उपस्टार्ट कुकबुक है: http://upstart.ubuntu.com/cookbook/


1
"ध्यान दें कि अच्छी तरह से व्यवहार किए गए डेमोंन्स को काम बंद होने पर ऊपर की ओर से एक संकेत प्राप्त करना चाहिए, और यदि वे सिग्नल को उचित रूप से संभालते हैं तो अतिरिक्त रूप से सफाई की आवश्यकता नहीं होनी चाहिए।" - ध्यान दें कि प्रोग्रामर जॉब के साथ चीजों पर नियंत्रण रखने के लिए हम यूनिक्स दुनिया में स्क्रिप्ट का उपयोग करते हैं। और यह हास्यास्पद टिप्पणी है, क्योंकि हमें ईमेल भेजने, उदाहरण के लिए लॉक को हटाने आदि के लिए शामिल करने के लिए एक जगह की आवश्यकता होती है और इस कार्य के लिए भाग ओ डेमॉन होना आवश्यक नहीं है। इसलिए अपस्टार्ट सर्वर वातावरण में उपयोग करने के लिए तैयार नहीं है।
काकज

इस जवाब से (एक!) मैं देखता हूं कि कोई अच्छा तरीका नहीं है जो हमें चाहिए?
काकज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.