सवाल आप मृत प्रक्रिया द्वारा खुले बंदरगाह को कैसे मुक्त कर सकते हैं?


मेरा एक सहयोगी हाल ही में एक समस्या में भाग गया जहां एक प्रक्रिया जो माना जाता था वह अभी भी एक नेटवर्क बंदरगाह से बंधे थे, जिससे अन्य प्रक्रियाओं को उस बंदरगाह से बाध्य करने से रोक दिया गया था। विशेष रूप से, netstat -a -b एक प्रक्रिया की रिपोर्ट कर रहा था System पीआईडी ​​4476 के पास बंदरगाह 60001 खुला था, सिवाय इसके कि पीआईडी ​​4476 के साथ कोई प्रक्रिया नहीं थी, कम से कम जहां तक ​​मैं कह सकता था।

प्रोसेस एक्सप्लोरर और टास्क मैनेजर ने पीआईडी ​​4476 की सूची नहीं दी है (हालांकि नाम की एक और प्रक्रिया थी System पीआईडी ​​4 के साथ, जिसमें टीसीपी कनेक्शन का अपना सेट था जिसमें 60001 शामिल नहीं थे)। taskkill /PID 4476 यह भी बताया कि पीआईडी ​​4476 नहीं मिला।

क्या इस रहस्यमय सिस्टम प्रक्रिया को उस बंदरगाह को मुक्त करने का कोई तरीका है जिस पर वर्तमान में यह बंधे हुए हैं? ऐसा होने का कारण क्या हो सकता है? प्रक्रियाएं कैसे हो सकती हैं कि कार्य प्रबंधक, प्रक्रिया एक्सप्लोरर और टास्ककिल में से कोई भी नहीं जानता है? रीबूटिंग समस्या को ठीक करने में कामयाब रहा, लेकिन मैं जानना चाहता हूं कि रीबूट किए बिना इसे ठीक करने का कोई तरीका है या नहीं।


50
2017-09-14 14:35


मूल


पोर्ट को रिहा किया गया था या नहीं, यह देखने के लिए आप कितने समय तक इंतजार कर रहे थे? कनेक्शन (बंदरगाह) में राज्य क्या था? स्थापित, बंद, Time_Wait? - joeqwerty
@joeqwerty: हम कम से कम 15-20 मिनट इंतजार कर रहे थे। दुर्भाग्य से मैं भूल जाता हूं कि कनेक्शन किस स्थिति में था / /। - Adam Rosenfield
20 मिनट एक समस्या की तरह लगता है। अगली बार जब यह नेटस्टैट चलाता है और कनेक्शन की स्थिति की जांच करता है, जो आपको क्या हो रहा है के बारे में एक सुराग देगा। जैसा कि आपने मिफिनी के उत्तर पर टिप्पणी की है, यह आपके सॉफ़्टवेयर \ सेवा क्रैशिंग का परिणाम हो सकता है। - joeqwerty


जवाब:


मुझे पता है कि यह एक पुराना धागा है, लेकिन अगर किसी और के पास एक ही समस्या है, तो मेरे पास ...

क्या हो रहा है कि आपकी प्रक्रिया में टीसीपी बंदरगाह खुला था जब इसे क्रैश या अन्यथा स्पष्ट रूप से बंद किए बिना बाहर निकला। आम तौर पर ओएस इस तरह की चीजों को साफ करता है, लेकिन केवल तभी जब प्रक्रिया रिकॉर्ड दूर हो जाता है। हालांकि प्रक्रिया अब और नहीं चल रही प्रतीत होती है, लेकिन कम से कम एक चीज है जो इसके पीआईडी ​​के पुन: उपयोग को रोकने के लिए इसके आसपास रिकॉर्ड रख सकती है। यह एक बाल प्रक्रिया का अस्तित्व है जो माता-पिता से अलग नहीं है।

यदि आपके प्रोग्राम ने चलने के दौरान किसी भी प्रक्रिया को जन्म दिया, तो उन्हें मारने का प्रयास करें। इससे इसकी प्रक्रिया रिकॉर्ड मुक्त होनी चाहिए और टीसीपी बंदरगाह को साफ किया जाना चाहिए। स्पष्ट रूप से खिड़कियां तब होती हैं जब रिकॉर्ड जारी नहीं किया जाता है जब प्रक्रिया समाप्त हो जाती है जैसा कि मैंने अपेक्षा की थी।


55
2018-05-25 18:18



धन्यवाद, अच्छा महोदय। मुझे विश्वास नहीं है कि यह जवाब इतना कम है, खासकर जब से Google क्वेरी उत्तर से भरा हुआ है "टीसीपीवीव / नेटस्टैट और टास्ककिल का उपयोग करें" जो इस मामले में मदद नहीं करते हैं। मेरे मामले में ProcessExplorer को चलाने में मदद मिली और अनाथ होने वाली किसी भी प्रक्रिया की तलाश में। उन्हें बंद करने से समस्या हल हो गई। - gwiazdorrr
आपके संकेत के लिए धन्यवाद !! अनाथ प्रक्रिया को मारने से वास्तव में समस्या हल हो गई। - Darkthread
धन्यवाद!! यह वही था जो मेरे साथ हुआ था। मैंने अनाथ प्रक्रिया को मार दिया और बंदरगाह जारी किया गया। मुझे यकीन नहीं है कि प्रक्रिया एक्सप्लोरर का उपयोग करके अनाथ प्रक्रियाओं को कैसे खोजा जाए, लेकिन मुझे उन प्रक्रियाओं के नाम पता था जो पैदा हुए थे इसलिए यह ढूंढना आसान था। - Grezzo
हमारे पास यही समस्या थी - और प्रोसेस एक्सप्लोरर का उपयोग करके देखा गया कि डॉ वाटसन पुराने पीआईडी ​​पर थे। हमने बंदरगाह के लिए खोज (खोज) की है कि सेवा खोलने का प्रयास कर रही थी, और उसके बाद डॉ वाटसन और पीआईडी ​​के लिए 3-4 प्रविष्टियां देखी गईं। आश्चर्यजनक रूप से पर्याप्त, हमें कुछ भी मारने की ज़रूरत नहीं थी। ऐसा लगता है कि उस प्रक्रिया को 'जाग गया' और यह गायब हो गया। अगली बार जब हमने सेवा को पुनरारंभ करने की कोशिश की, तो यह ठीक हो गया। - tresstylez
इसी तरह की समस्या वीएस के साथ डीबगिंग के दौरान हो सकती है। मैं प्रक्रिया करने के लिए वीएस संलग्न कर रहा हूं, और कुछ चक्रों के बाद - वर्णित स्थिति होती है, लेकिन मेरी कोई प्रक्रिया नहीं (बच्चों सहित) पत्तियां। लेकिन "vsjitdebugger" की हत्या में मदद करता है। - Dmitry Azaraev


क्या आपने टीसीपीवीव का उपयोग करने और कनेक्शन बंद करने का प्रयास किया था? मुझे नहीं पता कि यह उस परिदृश्य में कनेक्शन दिखाएगा जो आप वर्णन कर रहे हैं, क्योंकि मैंने कभी ऐसा नहीं किया है। लेकिन यह एकमात्र चीज है जिसे मैं सोच सकता हूं कि यह फिर से होता है।

प्रक्रिया क्या थी - क्या यह वाणिज्यिक सॉफ्टवेयर था, या कुछ घरगुदा था? ऐसा लगता है कि कुछ ट्रोजनों द्वारा बंदरगाह 60001 का उपयोग किया जाता है - मुझे आश्चर्य है कि क्या यह रूटकिट या ऐसा कुछ हो सकता है जो ओएस से खुद को छुपा सके? हो सकता है कि वह मशीन एवी के साथ एक बार अच्छा हो, शायद बूट करने योग्य मीडिया से कुछ।


6
2017-09-14 14:47



नहीं, हमने टीसीपीवीव को आजमाया नहीं है; यदि भविष्य में यह फिर से होता है तो मैं इसे भविष्य में दिमाग में रखूंगा। यह सॉफ़्टवेयर हमारे इन-हाउस सॉफ़्टवेयर है जो पोर्ट 60001 का उपयोग करता है - मुझे लगभग निश्चित है कि बंदरगाह को खोलने की प्रक्रिया हमारे सॉफ़्टवेयर का एक पिछला उदाहरण था जो किसी भी तरह से पूरी तरह से मर नहीं गया था। इसने लॉन्च होने से सॉफ्टवेयर की एक और प्रति को रोक दिया। - Adam Rosenfield
आपका एप्लिकेशन सॉकेट के SO_REUSEADDR विकल्प को बाध्य करने से पहले सत्य पर सेट कर सकता है। इससे आपकी समस्या हल होनी चाहिए (यह * निक्स पर भी कम या ज्यादा अनिवार्य है) - Stephane


मुझे पहले एक ही मुद्दे का सामना करना पड़ा है, नेटस्टैट-ए-विंडोज़ कमांड ने मुझे प्रक्रिया आईडी के साथ खुले बंदरगाहों की सूची दी है। उस से मैंने पोर्ट नंबर उठाया है जिसे मैं कनेक्शन बंद करना चाहता था और फिर मैंने उस कनेक्शन को TCPView सॉफ़्टवेयर का उपयोग करके बंद कर दिया। यह मेरे लिए काम किया।


1
2018-06-26 05:33





व्यवस्थापक के रूप में ओपन कमांड प्रॉम्प्ट

  1. सी: \ विन्डोज़ \ system32> netstat -ano | findstr: 78 9 5

*** चरण 2 दोहराएं जब तक कि कोई और बच्चा प्रक्रिया न हो

  1. सी: \ विन्डोज़ \ system32> Wmic प्रक्रिया जहां (ParentProcessId = 1091) कैप्शन प्राप्त करें, ProcessId

    कैप्शन प्रक्रिया आईडी

    cmd.exe 1328

2.a. सी: \ विन्डोज़ \ system32> Wmic प्रक्रिया जहां (ParentProcessId = 1328) प्राप्त करें       कैप्शन, ProcessID

  Caption  ProcessId

  conhost.exe  1128

2.b. इसे तब तक दोहराएं जब तक कोई और बाल प्रक्रिया नहीं मिल जाती

- फिर सभी बाल प्रक्रियाओं को मार डालो

  1. सी: \ विन्डोज़ \ system32> टास्किल / एफ / पीआईडी ​​1128 सफलता: पीआईडी ​​9500 के साथ प्रक्रिया समाप्त कर दी गई है।

1
2018-05-10 20:51





यदि आप विंडोज उपयोगकर्ता हैं तो नीचे दिए गए चरणों का पालन करें चरण 1: इस पथ पर जाएं: नियंत्रण कक्ष \ सभी नियंत्रण कक्ष आइटम \ व्यवस्थापकीय उपकरण

चरण 2: सेवाओं पर क्लिक करें

चरण 3: वांछित बंदरगाह पर चल रही अवांछित सेवाएं रोकें।


-4
2017-09-30 06:19





पीएस-एफआई | grep प्रक्रिया नाम

संबंधित प्रक्रियाओं को मार डालो

मार -9 पिड पिड

मेरे मामले में काम किया


-5
2018-02-21 10:47



यह सवाल विंडोज के बारे में है, लिनक्स नहीं - longneck