विंडोज कैसे एक प्रक्रिया को मारता है, बिल्कुल?


10

विंडोज में प्रक्रियाओं को कैसे मारा जाता है, इससे मैं अपरिचित हूं। लिनक्स में, एक "वार्म" किल एक सिग्नल (15) भेजता है जिसे प्रक्रिया सिग्नल हैंडलर को इंस्टेंट करके संभाल सकती है। एक कोल्ड किल सिग्नल (9) है जो ओएस जबरदस्ती प्रक्रिया को मारकर संभालता है।

मैं विंडोज में एक प्रक्रिया को "मार" कैसे सकता हूं? यह ओएस और प्रक्रिया द्वारा कैसे नियंत्रित किया जाता है? OS क्या कार्य करता है? क्या मार / बंद अनुरोध के जवाब का एक क्रॉस-प्लेटफ़ॉर्म तरीका है?


1
पाठकों के लिए: सिग्नल 15 है SIGTERM, 9 है SIGKILL
user1686

यदि आपके प्रश्न का उत्तर दिया गया है, तो कृपया एक उत्तर स्वीकार करें।
ओलिवर

जवाबों:


11

"एंड टास्क" (और taskkill) WM_CLOSEकार्यक्रम की खिड़कियों के लिए एक संदेश पोस्ट करने के लिए प्रकट होता है । ( ×"बंद" बटन पर क्लिक करने पर भी ऐसा ही किया जाता है ।) यदि प्रोग्राम कुछ समय में बाहर नहीं निकलता है, तो उपयोगकर्ता को प्रोग्राम को जबरदस्ती समाप्त करने के लिए प्रेरित किया जाता है।

"मार प्रक्रिया" और taskkill /fउपयोग करें TerminateProcess()


1
+1, WM_CLOSE ऐप को भेजा गया; X समय के बाद उपयोगकर्ता को बलपूर्वक मारने के लिए कहें, विंडोज शेड्यूलर से प्रक्रिया को हटा देता है, सभी हैंडल बंद कर देता है (जो प्रक्रिया को यात्रा कर सकता है यदि कर्नेल उन हैंडल में से एक को संसाधित कर रहा है), तो मेमोरी स्पेस को पुनः प्राप्त करता है (यह वास्तव में छोटा संस्करण है की प्रक्रिया)।
क्रिस एस

तीसरा तरीका है ntsd -p <pid> -c q, जो ntsdडिबगर का उपयोग करता है ; मुझे यकीन नहीं है कि जब कोई कार्यक्रम उस तरह से मारा जाता है तो क्या होता है। ( चुटकुले @ क्रिस )
user1686

5
यदि प्रोग्राम में विंडो नहीं है तो क्या होगा?
इत्तयाद

1
@ आईटीडीडी: फिर टास्क मैनेजर में "एंड टास्क" का उपयोग करने के लिए कोई प्रविष्टि नहीं है :) मैंने अभी कोशिश की taskkillऔर इसके साथ उत्तर दिया गया: "इस प्रक्रिया को केवल जबरदस्ती (/ एफ विकल्प के साथ) समाप्त किया जा सकता है।" तो हाँ, एकमात्र विकल्प बचा है TerminateProcess()
user1686

1
@ आईटीडीडी: ध्यान दें कि विंडोज पर, सेवाओं (डेमॉन) को उपयोगकर्ता अनुप्रयोगों से अलग तरीके से लिखा जाता है; वे सेवा प्रबंधक से स्थिति के प्रश्न और नियंत्रण अनुरोध प्राप्त कर सकते हैं, इसलिए एक शानदार रोक संभव है।
user1686

0

Sysinternals (अब Microsoft का हिस्सा) pskill नामक एक उपयोगिता प्रदान करता है जिसे कमांड लाइन से स्थानीय सिस्टम या दूरस्थ सिस्टम पर प्रक्रियाओं को मारने के लिए उपयोग किया जा सकता है।

एक GUI वातावरण में विंडोज में प्रक्रियाओं को मारने का सामान्य तरीका कार्य प्रबंधक का उपयोग करना है।


-1

साइबरविन के साथ आप एक क्रॉस प्लेटफॉर्म किल का उपयोग कर सकते हैं!

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