कैसे एक ज़ोंबी प्रक्रिया को मारने के लिए या एक टर्मिनल पर एक मैक पर मूल प्रक्रिया को खोजने के लिए टर्मिनल का उपयोग कर रहा है?
kill
सिग्नल में से कोई भी लाश IIRC के लिए काम नहीं करता है। मैंने पहले भी ऐसा किया है।
कैसे एक ज़ोंबी प्रक्रिया को मारने के लिए या एक टर्मिनल पर एक मैक पर मूल प्रक्रिया को खोजने के लिए टर्मिनल का उपयोग कर रहा है?
kill
सिग्नल में से कोई भी लाश IIRC के लिए काम नहीं करता है। मैंने पहले भी ऐसा किया है।
जवाबों:
हैक देखा कहते हैं:
अफसोस की बात है , यह प्रतीत होता है कि लाश की हत्या माता-पिता को मारने के बारे में है , और यदि माता-पिता / sbin / लॉन्चड है, तो आप इसे केवल रिबूटिंग के साथ मार सकते हैं।
यह मारने के लिए एक बहुत बुरा विचार होगा launchd
, लेकिन आप इसे एचयूपी को बता सकते हैं।
प्रयत्न sudo kill -s HUP 1
यह launchd
पुनरारंभ किए बिना पुनर्निवेश का कारण बनेगा । यह मेरे लिए अतीत में काम कर चुका है (ज़ोंबी प्रविष्टियों को हटाना)।
अफसोस की बात है , यह प्रतीत होता है कि लाश की हत्या माता-पिता को मारने के बारे में है , और यदि माता-पिता / sbin / लॉन्चड है, तो आप इसे केवल रिबूटिंग के साथ मार सकते हैं।
मुझे Xcode का उपयोग करने से, और सिमुलेटर को बंद करने से लाश मिल रही है, और यह लाश को अपने निजी / sbin / लॉन्चड को सौंप रहा है, जो मेरे लॉग आउट होने पर नहीं गया था ।
ps -xo pid, ppid, stat, कमांड आपको अपनी प्रक्रिया दिखाएगा, दूसरे कॉलम में उनके मूल आईडी के साथ।
ज़ोंबी प्रक्रियाएं पहले से ही मृत हैं और उन्हें नहीं मारा जा सकता है। पैरेंट प्रक्रिया के मर जाने पर उन्हें स्वचालित रूप से प्रक्रिया तालिका से हटा दिया जाना चाहिए।
वे आपकी मशीन को धीमा नहीं करते हैं और आप उन्हें वहां छोड़ सकते हैं (वे प्रक्रिया तालिका में केवल प्रविष्टियां हैं)।
अधिकतम संख्या में प्रक्रियाएं हैं (आप इसके साथ जांच कर सकते हैं sysctl kern.maxproc
) और ज़ोंबी प्रक्रियाएं इसे कम कर देंगी (जैसा कि उन्हें गिना जाता है)।
यदि आप इस सीमा तक पहुँचते हैं तो आप नई प्रक्रियाएँ नहीं बना पाएँगे और आपको रिबूट करने के लिए मजबूर होना पड़ेगा।