कैसे एक मैक पर एक ज़ोंबी प्रक्रिया को मारने के लिए


13

कैसे एक ज़ोंबी प्रक्रिया को मारने के लिए या एक टर्मिनल पर एक मैक पर मूल प्रक्रिया को खोजने के लिए टर्मिनल का उपयोग कर रहा है?



3
@soandos डुप्लिकेट नहीं है, क्योंकि यह विषय लाश के बारे में नहीं है। killसिग्नल में से कोई भी लाश IIRC के लिए काम नहीं करता है। मैंने पहले भी ऐसा किया है।
डैनियल बेक

आमतौर पर कोई भी लाश को मार सकता है यदि मूल प्रक्रिया को जाना जाता है, लेकिन इसके लिए उस एक को भी मारने की आवश्यकता होती है, जो हमेशा एक सुखद विकल्प नहीं होता है। इसलिए मैं सोच रहा हूं कि क्या इसका कोई और समाधान है।
eFrane

जवाबों:


16

हैक देखा कहते हैं:

अफसोस की बात है , यह प्रतीत होता है कि लाश की हत्या माता-पिता को मारने के बारे में है , और यदि माता-पिता / sbin / लॉन्चड है, तो आप इसे केवल रिबूटिंग के साथ मार सकते हैं।

यह मारने के लिए एक बहुत बुरा विचार होगा launchd, लेकिन आप इसे एचयूपी को बता सकते हैं।

प्रयत्न sudo kill -s HUP 1

यह launchdपुनरारंभ किए बिना पुनर्निवेश का कारण बनेगा । यह मेरे लिए अतीत में काम कर चुका है (ज़ोंबी प्रविष्टियों को हटाना)।


3

अफसोस की बात है , यह प्रतीत होता है कि लाश की हत्या माता-पिता को मारने के बारे में है , और यदि माता-पिता / sbin / लॉन्चड है, तो आप इसे केवल रिबूटिंग के साथ मार सकते हैं।

मुझे Xcode का उपयोग करने से, और सिमुलेटर को बंद करने से लाश मिल रही है, और यह लाश को अपने निजी / sbin / लॉन्चड को सौंप रहा है, जो मेरे लॉग आउट होने पर नहीं गया था

ps -xo pid, ppid, stat, कमांड आपको अपनी प्रक्रिया दिखाएगा, दूसरे कॉलम में उनके मूल आईडी के साथ।


1

ज़ोंबी प्रक्रियाएं पहले से ही मृत हैं और उन्हें नहीं मारा जा सकता है। पैरेंट प्रक्रिया के मर जाने पर उन्हें स्वचालित रूप से प्रक्रिया तालिका से हटा दिया जाना चाहिए।

वे आपकी मशीन को धीमा नहीं करते हैं और आप उन्हें वहां छोड़ सकते हैं (वे प्रक्रिया तालिका में केवल प्रविष्टियां हैं)।

अधिकतम संख्या में प्रक्रियाएं हैं (आप इसके साथ जांच कर सकते हैं sysctl kern.maxproc) और ज़ोंबी प्रक्रियाएं इसे कम कर देंगी (जैसा कि उन्हें गिना जाता है)।

यदि आप इस सीमा तक पहुँचते हैं तो आप नई प्रक्रियाएँ नहीं बना पाएँगे और आपको रिबूट करने के लिए मजबूर होना पड़ेगा।


"हटा दिया जाना चाहिए", लेकिन वे हमेशा नहीं होते हैं। Xcode ज़ोंबी प्रक्रियाओं को छोड़ने के बारे में भयानक है, और अगर Xcode मर जाता है / छोड़ दिया जाता है / मारा जाता है, तो भी उन्हें साफ नहीं किया जाता है।
JRG- डेवलपर

@ JRG- डेवलपर मैं सहमत हूं लेकिन वे कोई समस्या नहीं हैं। वे किसी भी संसाधन का उपभोग नहीं करते हैं।
मत्तो

2
वास्तव में वे एक समस्या है जब बहुत सारे बनाए जाते हैं और कांटा कोई नई प्रक्रिया शुरू नहीं कर सकता है और आपको रिबूट करने के लिए मजबूर किया जाता है।
एडम

2
जब आप दुर्घटनाग्रस्त प्रक्रिया को फिर से शुरू करना चाहते हैं, और इसे फिर से उपयोग करना चाहते हैं, तो वे एक समस्या है, लेकिन रिबूट किए बिना नहीं कर सकते।
मार्कस जे

4
जब कोई ऐप उस स्थिति में हो जाता है तो आप इसे तब तक वापस नहीं कर सकते जब तक कि पुरानी प्रविष्टि को हटा नहीं दिया जाता। यह किसी भी संसाधन का उपयोग नहीं कर रहा है, लेकिन तालिका का प्रदूषण एक नए उदाहरण को लॉन्च करने से रोकता है, इसलिए जब तक आप रिबूट नहीं करते तब तक आपको अवरुद्ध कर दिया जाता है।
जॉर्ज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.