2010-02-24 16 views
5

मुझे यह जांचने की ज़रूरत है कि मेरी विंडो सेवा चल रही है या नहीं, हर 15 मिनट या उससे भी ज्यादा नहीं।जांचें कि क्या एक विंडोज सेवा चल रही है?

यदि यह नहीं चल रहा है, तो मैं फिर से विंडोज सेवा को पुनरारंभ कैसे कर सकता हूं?

+0

एक और विंडोज सेवा के साथ? –

+0

सेवा में कोई नहीं – user280154

+0

मुझे नहीं पता कि मेरे पास एक विंडो सेवा है और मैंने इसे चलाने की कोशिश की है यदि यह नहीं चल रहा है, लेकिन मैं ऐसा करने में सक्षम नहीं हूं – user280154

उत्तर

15

आप देख सकते हैं एक सेवा एक ServiceController साथ चल रहा है: यदि आप किसी अन्य सेवा से इस फोन, या एक छोटे से प्रोग्राम है जो आप तो चलाने के लिए निर्धारित कर सकते हैं के रूप में यह बनाने की आवश्यकता होगी

ServiceController sc = new ServiceController("servicename"); 

if ((sc.Status.Equals(ServiceControllerStatus.Stopped)) || 
    (sc.Status.Equals(ServiceControllerStatus.StopPending))) 
{ 
    // Start the service if the current status is stopped. 
    sc.Start(); 
} 
बेशक

, हर 15 मिनट या तो।

+0

उत्तर के लिए धन्यवाद लेकिन यह मैंने किया है लेकिन जब इसे रोक दिया गया है sc.start() एक त्रुटि देता है जैसे कि यह मशीन नाम "" पर सेवा शुरू नहीं कर सकता है। – user280154

+0

@user: ओउ, लेकिन यह तब एक और समस्या है। ईवेंट लॉग के बारे में अधिक जानकारी दिखानी चाहिए कि सेवा क्यों शुरू नहीं हो सकती है। – fretje

+0

देखें कि क्या विंडोज सेवा नहीं चल रही है, तो यह कोड सही काम नहीं करेगा, ताकि यह जांचें कि यह सेवा कैसे चल रही है या नहीं, इस विंडोज सेवा के बाहर के लिए। – user280154

2

यदि सेवा नहीं चल रही है, तो यह स्वयं की जांच नहीं कर सकती है।

आपको दूसरी सेवा का उपयोग करने की आवश्यकता होगी जो जांच करता है।

+0

सही वह उत्तर था जिसे मैं अभी ढूंढ रहा था, मेरा अगला प्रश्न यह होगा कि मैं ऐसा करने के लिए धागे का उपयोग कर सकता हूं, तो यदि मैं किसी भी साइट को साझा कर सकता हूं तो यह बताता है कि यह किसी भी साइट को साझा कर सकता है जो बताता है कि यह अत्यधिक होगा की सराहना की। – user280154

+0

@ user280154 - कृपया थ्रेडिंग प्रश्न को एक नए प्रश्न के रूप में पूछें।और उत्तर को _accept_ भूलना न भूलें (आपके पसंदीदा उत्तर के बगल में स्थित चेक मार्क पर क्लिक करें)। – Oded

11

आप एक अतिरिक्त प्रक्रिया की जरूरत नहीं अपनी सेवा को ठीक होने है:

आप कुछ है कि आपके खिड़कियों सेवा हमेशा चल रहा है हो सकता है वसूली टैब में उसके गुण जाँच करना चाहते हैं। सभी विफलता कार्रवाइयों को "सेवा को पुनरारंभ करें" पर सेट करें और "मिनट के बाद सेवा को पुनरारंभ करें" सेट करें। जिस क्षण आपकी सेवा गायब हो जाती है, उसे तुरंत पुनरारंभ किया जाएगा। अगर यह थोड़ा अधिक समय से पहले पुन: प्रारंभ करने से किया जाता है प्रतीक्षा करने के लिए ठीक है टाइमआउट बढ़ाएँ:

Service Recovery settings http://www.robvangroenewoud.com/images/service_recovery.png

1

निर्मित विंडोज सेवाएं रिकवरी कार्यक्षमता (ऊपर रोब पद में स्क्रीनशॉट देखें) शायद अपनी जरूरतों को पूरा करेगा। यदि नहीं, तो मैं Service Protector को आजमाने का सुझाव देता हूं, जो स्वचालित रूप से आपकी महत्वपूर्ण विंडोज सेवाओं को 24/7 चलने के लिए डिज़ाइन किया गया है।

संबंधित मुद्दे