2012-06-04 19 views
28

हाय मैं निम्नलिखित प्रक्रिया है जो मैं नहीं कर सकते मारने की है।साइगविन में एक प्रक्रिया को कैसे मारें?</p> <p><img src="https://i.stack.imgur.com/WD11M.png" alt="The process to be killed."></p> <p>मैं में Windows XP 32 बिट cygwin चला रहा हूँ:

मैं निम्न कमांड जारी करने की कोशिश की है:

/bin/kill -f 4760 
/bin/kill -9 5000 
kill -9 5000 
kill 5000 

जब मैं लिखने/bin/-f 4760 मैं संदेश मिलता है, को मारने के 'मार: खुले पीआईडी ​​4760 नहीं कर सका।

जब मैं लिखने/bin/-9 5000 मैं संदेश, 'मार: 5000: ऐसी कोई प्रक्रिया' मिल मार डालते हैं।

मैं बस समझ में नहीं आता क्यों इस प्रक्रिया को मार डाला नहीं जा सकता है। चूंकि इसमें एक WINID है, इसे इसे/bin/kill -f 4760 द्वारा मारा जाना चाहिए?

आशा किसी THX मदद कर सकते हैं :)

+3

1. व्यवस्थापक उपयोगकर्ता 2. पथ/बिन के रूप में शुरू cygwin है/मारो (हत्या बाश खोल में एक शेल कमांड है) 3।/ bin/kill -f को –

+0

पर काम करना चाहिए 1. सिग्विन टर्मिनल को व्यवस्थापक उपयोगकर्ता के रूप में प्रारंभ करें 2. पथ/बिन/मार का उपयोग करें (बैश खोल में मारना विशेष है) 3./bin/kill -9 -f तब चाहिए काम 4. विंडोज़ प्रक्रियाओं के लिए एक राज्य में होना संभव है जहां उन्हें मार नहीं किया जा सकता है (जैसे डीबग किया जा रहा है) –

उत्तर

21

प्रक्रिया सबसे अधिक संभावना Windows से बंद है। आपको जो त्रुटि मिल रही है वह "पीआईडी ​​XXX नहीं खोल सका" इस पर इंगित करता है। पुष्टि करने के लिए खिड़कियों के साथ यह की हत्या की कोशिश taskkill

taskkill /PID 4760 
+0

जब मैं टास्ककिल/पीआईडी ​​4760 या टास्किल/पीआईडी ​​5000 टाइप करता हूं तो मुझे त्रुटि मिलती है: 'त्रुटि: प्रक्रिया " 4760 "नहीं मिला।" – Diemauerdk

+0

इसके अलावा, विंडोज़ कार्य में प्रबंधन मैं प्रक्रिया को देख नहीं सकता। – Diemauerdk

+0

क्या आप इसे कार्यसूची करते समय देखते हैं विंडोज कमांड लाइन से grep "dscli"? – kjp

2

अलग Windows प्रोग्राम संकेतों kill अलग ढंग से भेजता है संभाल लेंगे; उन्हें कभी भी उनसे निपटने के लिए डिज़ाइन नहीं किया गया है जैसे कि लिनक्स/सिगविन कार्यक्रम हैं।

एक Windows कार्यक्रम हत्या के लिए केवल विश्वसनीय तरीका इस तरह के कार्य प्रबंधक या प्रोसेस एक्सप्लोरर के रूप में एक Windows विशिष्ट उपकरण, उपयोग करने के लिए है।

कहा, अगर आप पहले से ही नहीं है, तो आप व्यवस्थापक मोड में अपने Cygwin टर्मिनल चल साथ भाग्य हो सकता है (सही अपने शॉर्टकट पर क्लिक करें और "व्यवस्थापक के रूप में चलाएँ")।

1

@Donal टोबिन द्वारा प्रस्तुत विधि सही है:

kill -f <pid>

हालांकि, मैं व्यवस्थापक के रूप में लॉग इन करने की जरूरत नहीं है।

8

बात यह Cygwin में निम्नलिखित काम करता है:

echo PID1 PID2 PID3 | xargs kill -f 

उदाहरण के लिए:

ps -W | grep WindowsPooPoo | awk '{print $1}' | while read line; do echo $line | xargs kill -f; done; 
+0

करता हूं तो यहां मेरे लिए महत्वपूर्ण कारक 'मार' में '-f' तर्क था । इसे जोड़ने से "ऐसी कोई प्रक्रिया नहीं" त्रुटि बंद हो गई। धन्यवाद! –

1

एक फ़ाइल इस लाइन के साथ killall.sh बनाएं जिसका नाम

ps -W | grep $1 | awk '{print $1}' | while read line; do echo $line | xargs kill -f; done; 

तो यह अमल देना अनुमतियाँ।

chmod 777 killall.sh 

अपने .bash_profile में इस लाइन

alias killall="~/killall.sh" (point it to the correct location) 

जोड़ने तो फिर तुम सिर्फ "killall [नाम]" टाइप करने के लिए

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

  • कोई संबंधित समस्या नहीं^_^