"Stopping
. पर स्टैक की गई Windows सेवा प्रक्रिया को मैन्युअल रूप से कैसे समाप्त करें ” या “Starting
" राज्य? अधिकांश विंडोज़ व्यवस्थापकों को एक समस्या का सामना करना पड़ा है जब वे किसी सेवा को प्रारंभ/बंद/पुनरारंभ करने का प्रयास करते हैं, लेकिन यह रोकना के साथ अटक जाता है। (या शुरू हो रहा है ) स्थिति। आप सेवा प्रबंधन कंसोल (services.msc
. से इस सेवा को रोक नहीं पाएंगे ), चूंकि इस सेवा के लिए सभी नियंत्रण बटन निष्क्रिय (ग्रे आउट) हो जाते हैं। विंडोज़ को पुनरारंभ करना सबसे आसान तरीका है, लेकिन यह हमेशा स्वीकार्य नहीं होता है। आइए वैकल्पिक तरीकों पर एक नज़र डालें, जो सिस्टम रिबूट के बिना एक अटकी हुई विंडोज सेवा या प्रक्रिया को जबरदस्ती मारने की अनुमति देता है।
यदि सेवा को रोकने का प्रयास करने के 30 सेकंड के भीतर, यह बंद नहीं होता है, तो Windows यह संदेश प्रदर्शित करता है:
Windows Could not stop the xxxxxx service on Local Computer Error 1053: The service did not respond in a timely fashion.सेवा नियंत्रण प्रबंधक द्वारा सेवा के प्रारंभ या बंद होने की प्रतीक्षा करने के समयबाह्य को ServicesPipeTimeout का उपयोग करके बदला जा सकता है रजिस्ट्री पैरामीटर। यदि सेवा निर्दिष्ट टाइमआउट के भीतर शुरू नहीं होती है, तो विंडोज इवेंट व्यूअर को एक त्रुटि भेजता है (ईवेंट आईडी:7000, 7009, 7011, एक टाइमआउट 30000 मिलीसेकंड तक पहुंच गया था ) आप इस समयबाह्य को 60 सेकंड तक बढ़ा सकते हैं, उदाहरण के लिए:
reg add HKLM\SYSTEM\CurrentControlSet\Control /v ServicesPipeTimeout /t REG_SZ /d 600000 /f
यह उन भारी सेवाओं को शुरू/बंद करते समय उपयोगी होता है जिनके पास सभी प्रक्रियाओं को ठीक से समाप्त करने और फ़ाइलों को बंद करने के लिए पर्याप्त समय नहीं होता है (उदाहरण के लिए, एमएस एसक्यूएल सर्वर)।
यदि आप कमांड प्रॉम्प्ट से ऐसी सेवा को रोकने का प्रयास करते हैं:net stop wuauserv
, एक संदेश प्रकट होता है:
The service is starting or stopping. Please try again later.
या:
Windows could not stop the Service on Local Computer. [SC] ControlService Error 1061: The service cannot accept control messages at this time.
सामग्री:
- टास्ककिल का उपयोग करके एक अटकी हुई विंडोज सेवा को बलपूर्वक कैसे मारें?
- PowerShell के साथ एक अटकी हुई Windows सेवा को बलपूर्वक रोकें
- ResMon का उपयोग करके हंग सेवाओं पर प्रतीक्षा श्रृंखलाओं का विश्लेषण करना
- प्रोसेस एक्सप्लोरर का उपयोग करके हंग सर्विस को मारना
टास्ककिल का उपयोग करके किसी अटकी हुई विंडोज सेवा को बलपूर्वक कैसे मारें?
अटकी हुई सेवा को रोकने का सबसे आसान तरीका अंतर्निहित टास्ककिल . का उपयोग करना है कमांड लाइन उपकरण। सबसे पहले, आपको PID . खोजना होगा (प्रक्रिया पहचानकर्ता) सेवा की। एक उदाहरण के रूप में, आइए विंडोज अपडेट सेवा को लें। इसका सिस्टम नाम wuauserv
. है (आप services.msc
. में सेवा गुणों में नाम देख सकते हैं कंसोल)।
इस कमांड को एलिवेटेड कमांड प्रॉम्प्ट में चलाएँ (यह महत्वपूर्ण है, या एक्सेस अस्वीकृत त्रुटि दिखाई देगी):sc queryex wuauserv
हमारे मामले में, wuauserv सेवा का PID 9186 है।
PID 9186 के साथ अटकी हुई प्रक्रिया को बलपूर्वक समाप्त करने के लिए, कमांड चलाएँ:
taskkill /PID 9168 /F
SUCCESS: The process with PID 9168 has been terminated.
यह आदेश सेवा प्रक्रिया को जबरन समाप्त कर देगा। अब आप sc start servicename
. के साथ सेवा शुरू कर सकते हैं आदेश या सेवा प्रबंधन कंसोल के माध्यम से
आप सेवा प्रक्रिया के पीआईडी को मैन्युअल रूप से जांचे बिना एक त्रिशंकु सेवा को और अधिक सुरुचिपूर्ण ढंग से रोक सकते हैं। टास्ककिल टूल में /FI . है विकल्प, जो आपको आवश्यक सेवाओं या प्रक्रियाओं का चयन करने के लिए फ़िल्टर का उपयोग करने की अनुमति देता है। आप आदेश के साथ एक विशिष्ट सेवा को मार सकते हैं:
taskkill /F /FI "SERVICES eq wuauserv"
या आप सेवा के नाम को बिल्कुल भी छोड़ सकते हैं और सभी सेवाओं को इस आदेश के साथ समाप्त कर सकते हैं:
taskkill /F /FI "status eq not responding"
उसके बाद, स्टॉपिंग स्थिति में स्टैक की गई सेवा बंद हो जानी चाहिए।
दूरस्थ कंप्यूटर पर हैंग सेवाओं को बलपूर्वक रोकने के लिए आप टास्ककिल सुविधा का भी उपयोग कर सकते हैं:
taskkill /S mun-fs01 /F /FI "SERVICES eq wuauserv"
PowerShell के साथ एक अटकी हुई Windows सेवा को बलपूर्वक रोकें
सेवा को रोकने के लिए बाध्य करने के लिए आप पावरशेल का भी उपयोग कर सकते हैं। निम्नलिखित कमांड का उपयोग करके, आप स्टॉपिंग अवस्था में सेवाओं की सूची प्राप्त कर सकते हैं:
Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'stop pending'}
या प्रारंभिक अवस्था में:
Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'start pending'}
रोकने की प्रक्रिया cmdlet सभी मिली सेवाओं की प्रक्रियाओं को समाप्त करने की अनुमति देता है। निम्न पावरशेल स्क्रिप्ट विंडोज़ पर सभी अटकी हुई सेवा प्रक्रियाओं को समाप्त कर देगी:
$Services = Get-WmiObject -Class win32_service -Filter "state = 'stop pending'"
if ($Services) {
foreach ($service in $Services) {
try {
Stop-Process -Id $service.processid -Force -PassThru -ErrorAction Stop
}
catch {
Write-Warning -Message "Error. Error details: $_.Exception.Message"
}
}
}
else {
Write-Output "No services with 'Stopping'.status"
}
Get-CimInstance
. का उपयोग करना चाहिए Get-WmiObject
. के बजाय नए पावरशेल कोर 6.x/7.x में cmdlet। स्क्रिप्ट के पहले कमांड को इसके साथ बदलें:
$Services = Get-CimInstance -Class win32_service | where-Object state -eq 'stop pending'
ResMon का उपयोग करके हंग सेवाओं पर प्रतीक्षा श्रृंखलाओं का विश्लेषण करना
आप resmon.exe . का उपयोग करके उस प्रक्रिया का पता लगा सकते हैं जिसके कारण सेवा हैंग हो गई थी (संसाधन मॉनिटर)।
- रिसोर्स मॉनिटर विंडो में, सीपीयू टैब पर जाएं और हैंग सर्विस प्रोसेस देखें;
- आइटम का चयन करें प्रतीक्षा श्रृंखला का विश्लेषण करें संदर्भ मेनू से;
- नई विंडो में, आप सबसे अधिक संभावना देखेंगे कि आपकी प्रक्रिया किसी अन्य प्रक्रिया की प्रतीक्षा कर रही है। प्रक्रिया समाप्त करें। यदि आप svchost.exe या किसी अन्य सिस्टम प्रक्रिया की प्रतीक्षा कर रहे हैं, तो आपको इसे समाप्त करने की आवश्यकता नहीं है। इस प्रक्रिया के लिए प्रतीक्षा श्रृंखला का विश्लेषण करने का प्रयास करें। उस प्रक्रिया का PID ढूंढें जिसका आपका svchost.exe इंतजार कर रहा है और इसे समाप्त कर दें।
प्रोसेस एक्सप्लोरर का उपयोग करके हंग सर्विस को मारना
यहां तक कि स्थानीय व्यवस्थापक सिस्टम खाते के अंतर्गत चलने वाली कुछ प्रक्रियाओं को समाप्त नहीं कर सकता है। तथ्य यह है कि व्यवस्थापक खाते को कुछ प्रक्रियाओं या सेवाओं पर अनुमति नहीं है। ऐसी प्रक्रिया (सेवा) को रोकने के लिए, आपको स्थानीय व्यवस्थापक समूह को सेवा (प्रक्रिया) की अनुमति देनी होगी और फिर उन्हें मारना होगा। ऐसा करने के लिए, हमें दो छोटे टूल की आवश्यकता होगी:psexec.exe और प्रोसेस एक्सप्लोरर (माइक्रोसॉफ्ट वेबसाइट पर उपलब्ध)।
- ProcessExplorer को सिस्टम विशेषाधिकारों (runas SYSTEM) के साथ शुरू करने के लिए, कमांड का उपयोग करें:
PSExec -s -i ProcExp.exe
- प्रक्रिया एक्सप्लोरर प्रक्रिया सूची में, अटकी हुई सेवा प्रक्रिया को ढूंढें और उसके गुणों को खोलें;
- सेवाओं पर जाएं टैब पर जाएं, अपनी सेवा ढूंढें और अनुमतियां . क्लिक करें बटन;
- व्यवस्थापकों . के लिए सेवा अनुमतियों में पूर्ण नियंत्रण प्रदान करें समूह<मजबूत>. परिवर्तनों को सुरक्षित करें;
- अब सेवा प्रक्रिया को रोकने का प्रयास करें। कृपया ध्यान दें, कि सेवा को फिर से शुरू होने तक अस्थायी रूप से अनुमति दी जाती है। सेवा पर स्थायी अनुमति देने के लिए लेख का पालन करें विंडोज सेवा पर अनुमतियां सेट करें।