आप कैसे जांचेंगे कि एक WIN32 सेवा मौजूद है या नहीं, और यदि ऐसा है, तो कुछ ऑपरेशन करें?यदि सेवा मौजूद है
उत्तर
मेरे सिर के ऊपर से, आप "नेट" कमांड का उपयोग करके, "नेट" कमांड का उपयोग करके, "नेट" कमांड का उपयोग करके, एक विशिष्ट सेवा चल रही है या नहीं, यह जांच सकते हैं कि परिणाम "पाइप" में पाइप कर रहा है। कुछ की तरह कुछ जांच करेगा कि कोई सेवा चल रही है या नहीं, और यदि ऐसा है तो इसे रोक दें। इसके बाद आप अगर यह पहले से ही चल रहा था या नहीं के बारे में चिंता किए बिना इसे शुरू कर सकते हैं:
net start | find "SomeService"
if ERRORLEVEL 1 net stop "SomeService"
net start "SomeService"
आप findstr उपयोग कर रहे हैं खोज करने के लिए, के रूप में अन्य उत्तर में से कुछ का सुझाव दिया है, तो आप ERRORLEVEL बराबर के लिए जाँच करेगा 0 (शून्य) के लिए ... आप के लिए देख रहे हैं यह तो आप स्ट्रिंग पाया है है:
net start | findstr "SomeService"
if ERRORLEVEL 0 net stop "SomeService"
net start "SomeService"
अनिवार्य रूप से सबसे डॉस कमांड ERRORLEVEL सेट हो जाएगा, अगर एक खोज की तरह कुछ सफल रहा है आप की जाँच करने के लिए अनुमति देता है।
आप डॉस में ऐसा नहीं कर सकते, क्योंकि डॉस विंडोज नहीं है और इसमें "सेवा" की अवधारणा भी नहीं है।
एक Windows बैच में फ़ाइल सेवाओं को खोजने के लिए sc
आदेश का उपयोग कर सकते हैं:
sc query | findstr SERVICE_NAME
यह सभी सेवाओं की गणना और अपने नाम निकलेगा।
आप
sc query | findstr /C:"SERVICE_NAME: myservice"
साथ एक विशिष्ट सेवा के लिए खोज सकते याद रखें कि यह खोज केस-संवेदी है। इससे बचने के लिए आप findstr
पर स्विच कर सकते हैं।
कैसे WMIC
उपयोग के बारे में:
प्रथम सूची सभी प्रक्रियाओं, तो अपने प्रक्रिया नाम grep। यदि कोई अस्तित्व नहीं है तो कोई परिणाम मुद्रित नहीं किया जाएगा।
wmic service |findstr "ProcessName"
उदाहरण:
C:\>wmic service |findstr "Search"
FALSE TRUE Windows Search
यह एक कथन में कैसे काम करेगा? – Burt
@ बर्ट: अगर कथन में कौन सी भाषा है? बैच, vbscript, सी # या यहां तक कि perl? निश्चित रूप से यह बहुत आसान होगा यदि आप wc (gnu32 में coreutils का हिस्सा) स्थापित करते हैं, तो आप c:> wmic service | findstr "Search" | wc -l करेंगे, फिर निर्धारित करने के लिए उस नंबर को पकड़ने के लिए कुछ कोड लिखें। –
बस स्वीकार किए जाते हैं जवाब देने के लिए एक परिशिष्ट। यदि आप सेवा को पुनरारंभ करने की तुलना में अन्य चीजें करना चाहते हैं, और यह देखने के लिए देख रहे हैं कि सेवा स्थापित है या नहीं।
sc query state= all | findstr /C:"SERVICE_NAME: MyService"
if ERRORLEVEL 0 (**My Operation**)
इस मामले में, राज्य = सभी महत्वपूर्ण यदि सेवा प्रारंभ नहीं किया जाता है, यह स्थापित नहीं है, जो दो अलग-अलग बातें हैं के रूप में व्याख्या की जाएगी के बाद से है।
जैसा कि बताया गया है, यह होना चाहिए: 'अगर ERRORLEVEL 1 (** मेरा ऑपरेशन **) ' – bstoney
सफलतापूर्वक परीक्षण नहीं किया जाना चाहिए: "अगर (नहीं) त्रुटि 1" ??
विंडोज शैल में "अगर त्रुटिहीन #" का अर्थ है त्रुटि त्रुटि # या उच्च है, तो "अगर त्रुटि संदेश 0" हमेशा सत्य है।
नहीं है, तो यह जवाब है कि" मैं कैसे निष्पादित करने योग्य परीक्षण करता हूं या नहीं, लेकिन यह देखने के लिए कुछ भी नहीं है कि सेवा –
स्थापित या चल रहा है, लेकिन मुझे इस समय टिप्पणी लिखने का कोई अधिकार नहीं था। – user2956477
मैं नीचे दिए गए कोड का उपयोग कर रहा:
SC QUERY | FIND "SERVICE_NAME: MyService"
IF %ERRORLEVEL% EQU 0 NET STOP MyService
तो MyService नहीं पाया जाता है,% errorlevel% 1 खोजते पर सेट हो जाएगा, और यह 0 पर बनी रहेगी।निर्देश IF% ERRORLEVEL% EQU 0 आपको इस अंतिम मामले का परीक्षण करने और आपकी सेवा पर एक ऑपरेशन के साथ आगे बढ़ने की अनुमति देता है।
IF ERRORLEVEL 0 NET STOP MyService
काम नहीं करेगा, क्योंकि यह आदेश निष्पादित करता है, तो% errorlevel% अधिक से अधिक या शून्य के बराबर है।
एक दृश्य स्टूडियो पोस्ट का निर्माण होने पर, आपको एक डाल करने के लिए है: अंत में
EXIT 0
क्योंकि वी.एस. कि% errorlevel% की पहचान करेगा = 0 और यह विचार करेंगे कि पोस्ट का निर्माण घटना में नाकाम रही है । इसे देखभाल के साथ प्रयोग करें क्योंकि इससे आपके कमांड अनुक्रम में सभी त्रुटियां छिप जाएंगी।
इस चाल के साथ, आप त्रुटि को अनदेखा करने और अपनी सेवा को पुनः आरंभ करने के लिए अपने पद का निर्माण घटना में इस का उपयोग कर सकते हैं:
NET STOP MyService
NET START MyService
EXIT 0
- 1. यदि मौजूद है या मौजूद है?
- 2. यदि रिकॉर्ड मौजूद है, तो
- 3. जावास्क्रिप्ट यदि var मौजूद है
- 4. बनाएँ यदि मौजूद नहीं है
- 5. परीक्षण यदि कोई चर मौजूद है
- 6. जावास्क्रिप्ट: यदि सरणी मौजूद है, तो जांचें,
- 7. वर्ग - यदि मौजूद नहीं है तो
- 8. यदि स्थिति मौजूद है तो MySQL ट्रिगर
- 9. फ़ाइल को निकालें यदि यह मौजूद है
- 10. एक्सएसएलटी यदि विशेषता मौजूद है/अन्य
- 11. mysql सशर्त डालने - यदि मौजूद नहीं है
- 12. यदि सत्र मौजूद है या नहीं
- 13. आईडी ('# आईडी') क्यों सच है यदि आईडी मौजूद नहीं है?
- 14. "तालिका मौजूद नहीं है यदि मौजूद नहीं है" - स्कीमा को कैसे जांचें?
- 15. जांचें कि कोई आइटम बिना किसी त्रुटि के मौजूद है यदि यह मौजूद नहीं है
- 16. SQL सर्वर सेट चर मौजूद है यदि मौजूद है तो तालिका
- 17. MongoDB - डॉक यदि मौजूद नहीं सरणी
- 18. MySQL: यदि मान मौजूद है तो अपडेट करें INSERT
- 19. Jquery insert केवल तत्व के बाद यदि तत्व मौजूद है
- 20. एक्सएमएल पार्स चेक करें यदि विशेषता मौजूद है
- 21. नकल File.Move यदि गंतव्य पहले से मौजूद है
- 22. एक्सएसएलटी डिफ़ॉल्ट वैरिएबल वैल्यू यदि मूल्य मौजूद नहीं है
- 23. मैं "यदि ऑब्जेक्ट मौजूद है" स्थिति कैसे सेट करूं?
- 24. यदि कुंजी मौजूद नहीं है तो डिफ़ॉल्ट मान
- 25. यदि कोई फ़ंक्शन मौजूद है तो DLL को कैसे जांचें?
- 26. केवल session_start() लोड करें यदि सत्र मौजूद नहीं है?
- 27. php mysql डेटाबेस बनाते हैं यदि मौजूद नहीं है
- 28. यदि मौजूद है तो फ़ाइल में जोड़ें और
- 29. केवल एक फ़ाइल बनाएं यदि मौजूद नहीं है
- 30. यदि बच्चा मौजूद नहीं है तो माता-पिता रिकॉर्ड हटाएं
क्या सेवा क्या सिस्टम पर? कृपया अधिक संदर्भ प्रदान करें। –
यह एक स्थानीय सेवा होगी जिसे एबीसी नाम दिया जाता है। दृश्य सेवा स्टूडियो में पोस्ट बिल्ड इवेंट के हिस्से के रूप में मौजूद होने पर मुझे सेवा को पुनरारंभ करने की आवश्यकता है। वीएस पोस्ट बिल्ड इवेंट मूल रूप से बैच/डॉस (??) कमांड हैं। – Burt