जब कोई सेवा विफल होती है, तो रिकवरी कार्य सेट करें


10

मैंने विंडोज़ बॉक्स पर हमारी कई कस्टम लिखित सेवाएँ स्थापित की हैं (इससे कोई फर्क नहीं पड़ता कि XP, सर्वर, विस्टा)। मैं हमेशा 1, 2 और बाद की विफलताओं पर "सेवा को पुनरारंभ करें" को कॉन्फ़िगर करता हूं। लेकिन मैंने यह काम कभी नहीं देखा; सेवा केवल बंद हो जाती है (कोड में कोई त्रुटि या कुछ होने के कारण) लेकिन फिर से शुरू नहीं होती है।

मैंने सिर्फ "एरर्स के साथ स्टॉप्स के लिए एक्ट्स एनेबल करें" चेकबॉक्स पर ध्यान दिया। क्या विफलता के कारण वसूली को प्रभावित करने के लिए यह जांचना पड़ता है कि क्या त्रुटि के कारण विफलता हुई थी?

धन्यवाद, मार्क।

जवाबों:


3

यदि आपकी सेवाएँ किसी त्रुटि के कारण रुक रही हैं, जो कि विंडोज़ द्वारा लॉग की गई है, तो हाँ, आपको Act इनेबल एक्टशन्स फॉर स्टॉप विद एरर्स ’पर टिक करना होगा, अन्यथा यह काम नहीं करेगा।

यदि आपके पास यह टिक नहीं है, तो यह केवल उन सेवाओं को फिर से शुरू करेगा जो वैध या अज्ञात कारणों से बंद हो गए हैं।


1
धन्यवाद - मुझे लगा कि तरह। लेकिन मैंने सोचा होगा कि "त्रुटि" एक "विफलता" के रूप में एक ही बात होगी, और इसलिए बॉक्स की जांच के बिना सेवा शुरू होनी चाहिए थी।
एम शेंकेल

ऐसा लगता है कि मैं थोड़ा सहमत हूं, क्योंकि अधिकांश कारणों से एक सेवा विफल हो जाएगी आपको लगता है कि एक त्रुटि होगी।
सैम कॉगन

2
"वैध" कारणों से रोकी गई सेवाओं पर कभी भी कोई पुनर्प्राप्ति कार्रवाई शुरू नहीं की जाती है। यह उत्तर अभी भी "स्टॉप" और "विफलता" शब्दों पर भ्रम पैदा करता है।
मैटपॉप

3
Microsoft पर जिसे भी इस भाषा को लिखा गया है, उसे उनकी अक्षमता के लिए पूरी तरह से रोक दिया जाना चाहिए।
ब्रेन २२

16

चेकबॉक्स Windows Vista और Windows Server 2008 के साथ पेश किया गया था, की एक एकल, शर्मिंदा लाइन उपलब्ध कराने के "त्रुटियों के साथ बंद हो जाता है के लिए कार्रवाई सक्षम करें" प्रलेखन :

पुनर्प्राप्ति क्रियाओं को ट्रिगर करने के लिए त्रुटियों के साथ स्टॉप के लिए सक्षम कार्रवाइयों का चयन करें , जो सेवा एक त्रुटि के साथ बंद हो गई।

Sc.exe कार्यक्रम भी एक नया आदेश प्रदान करने के लिए अद्यतन किया गया था: failureflagप्रलेखन एक बुरा उदाहरण से पता चलता है और वास्तव में Windows Server 2003 पर लागू नहीं होता है, लेकिन आदेश है कि हमें बताता है:

निर्दिष्ट करता है कि जब कोई सेवा त्रुटि के परिणामस्वरूप बंद हो जाती है, तो पुनर्प्राप्ति क्रियाएं चालू हो जाएंगी।

तो, चेकबॉक्स और sc failureflagउसी ध्वज को सेट करने के लिए उपयोग किया जाता है। कमांड प्रॉम्प्ट में
टाइप sc failureflagकरते हैं, हम अंत में एक काफी सभ्य विवरण प्राप्त करते हैं:

किसी सेवा की विफलता कार्रवाई फ़्लैग सेटिंग को बदलता है। यदि यह सेटिंग 0 (डिफ़ॉल्ट) है, तो सेवा नियंत्रण प्रबंधक (SCM) सेवा पर कॉन्फ़िगर किए गए विफलता क्रियाओं को तभी सक्षम करता है, जब सेवा प्रक्रिया, SERVICE_STOPPED के अलावा किसी अन्य राज्य में सेवा के साथ समाप्त हो जाती है। यदि यह सेटिंग 1 है, तो SCM सेवा में कॉन्फ़िगर किए गए विफलता क्रियाओं को सक्षम करता है यदि सेवा, ऊपर की तरह सेवा प्रक्रिया समाप्ति के अलावा Win32 के बाहर निकलने के कोड के साथ SERVICE_STOPPED अवस्था में प्रवेश करती है। यदि सेवा में कोई विफलता क्रिया कॉन्फ़िगर नहीं है, तो इस सेटिंग को अनदेखा कर दिया जाता है।

एक समान विवरण यहां पाया जा सकता है
इसलिए, मूल प्रश्न का सही उत्तर है: कॉन्फ़िगर की गई पुनर्प्राप्ति क्रियाएं हमेशा प्रभावी होती हैं जब आपकी सेवा SERVICE_STOPPP स्थिति में समाप्त नहीं होती है। "त्रुटियों के साथ स्टॉप के लिए कार्रवाई सक्षम करें" की जाँच की जानी चाहिए, यदि आपको पुनर्प्राप्ति क्रियाओं को सक्षम करने की आवश्यकता है, जब आपकी सेवा SERVICE_STOPPED स्थिति में प्रवेश करती है, बशर्ते कि बाहर निकलने का कोड 0 (त्रुटि) न हो।


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