जवाबों:
हे भगवान! नहीं नहीं नहीं। किल -9 का उपयोग न करें।
यह प्रक्रिया को सफाई का मौका नहीं देता है:
सॉकेट कनेक्शन बंद करें
अस्थायी फ़ाइलों को साफ करें
अपने बच्चों को सूचित करें कि वह दूर जा रहा है
अपनी टर्मिनल विशेषताओं और इतने पर और इतने पर रीसेट करें।
आम तौर पर, 15 भेजें, और एक या दो सेकंड प्रतीक्षा करें, और यदि वह काम नहीं करता है, तो 2 भेजें, और यदि वह काम नहीं करता है, तो भेजें। 1. यदि ऐसा नहीं है, तो प्रोग्राम को बुरी तरह से बर्खास्त न करें!
किल -9 का उपयोग न करें। बस फूलों के बर्तन को साफ करने के लिए कंबाइन हारवेस्टर बाहर न लाएं।
ज़ोंबी प्रक्रिया (वास्तव में अब उन्हें बुलाया जाता है <defunct>
) वास्तव में एक प्रक्रिया नहीं है। यह केवल प्रक्रिया तालिका में प्रविष्टि है, इसलिए मूल प्रक्रिया wait()
syscall कर सकती है ।
आपको उनकी चिंता नहीं करनी चाहिए। वे किसी भी संसाधन पर कब्जा नहीं करते हैं, वे या तो गायब हो जाएंगे, जब उनके माता wait()
-पिता खुद मर जाएंगे ।
पहले से ही एक स्वीकृत उत्तर है, हालांकि: आप ज़ोंबी प्रक्रिया को मार सकते हैं। डिबगर को मूल प्रक्रिया में संलग्न करें और वाट्सएप फ़ंक्शन को कॉल करें। जैसे: - मान लें कि माता-पिता के पास पीआईडी = 100 है, ज़ोंबी प्रक्रिया में पीआईडी = 200 है
$ gdb -p 100
(gdb) call waitpid(200, 0, 0)
(gdb) quit
एक ज़ोंबी प्रक्रिया के पास कोई भी संसाधन नहीं हैं, जो भी हो, प्रक्रिया के पेड़ में प्रवेश के अलावा। यह जब एक प्रक्रिया को पूरा करता है, तथापि माता पिता प्रक्रिया अभी तक नहीं किया गया है होता काटा यह, (यानी, wait
इस पर एड)।
आप कोशिश कर सकते हैं और माता-पिता को ऐसा करने के लिए मजबूर कर सकते हैं यदि आप इसे kill -20
माता-पिता को SIGCHLD ( ) भेजकर चाहते हैं , लेकिन इस बात की कोई गारंटी नहीं है कि माता-पिता इसका सम्मान करेंगे।
आप अक्सर उन्हें थोड़े समय के लिए देखेंगे (उदाहरण के लिए शीर्ष पेड़ का उपयोग करते समय देखें) - यह सामान्य है; उस समय के दौरान स्लाइस में जो एक बच्चे की प्रक्रिया पूरी हो जाती है, और माता-पिता इसके लिए मतदान करते हैं - बच्चे की प्रक्रिया एक ज़ोंबी के रूप में दिखाई देगी।
यदि आप ज़ोंबी प्रक्रियाओं को देखते हैं जो लगातार मौजूद रहते हैं - जो सामान्य नहीं है - फिर भी चिंतित होने की कोई आवश्यकता नहीं है - फिर से एक मृत प्रक्रिया को आवंटित संसाधन नहीं है - इसका आमतौर पर मतलब है कि आवेदन खराब डेवलपर्स द्वारा लिखा गया है।
केवल उसी समय जब आपको ज़ोंबी प्रक्रियाओं से चिंतित होना चाहिए, जब आप बहुत सारे और बहुत सारे देखते हैं, उदाहरण के लिए यदि ऊपर वर्णित वही भद्दा आवेदन लोड के तहत रखा गया है।
हमारे पास बहुत से गंदे डेवलपर्स हैं जहां मैं काम करता हूं, और इसलिए मुझे ऐसे मुद्दों से निपटने और ऐसा करते समय सभी प्रकार के बेकार सामान को सीखने का विशेषाधिकार है। वास्तव में - मेरी टीम अक्सर साक्षात्कारों में भद्दा डेवलपर्स द्वारा लिखी गई भद्दी खोल स्क्रिप्ट का उपयोग करने का संकल्प करती है - यदि उम्मीदवार यह चुन सकता है कि स्क्रिप्ट वास्तव में बकवास है, और हमें बताएं कि यह भद्दा क्यों है, तो उसके पास दरवाजे में एक अच्छा पैर है।
आभासी बन्दूक के रूप में ...
$ शूट <pid>
#! / Bin / श पीड़ित = `ps -e -o pid, ppid | egrep "^ \ s * $ 1 \ b" | awk '{प्रिंट $ 2}' ` पीड़ित \ _नाम = `ps -e -o pid, cmd | egrep "^ \ s * $ {पीड़ित} \ b" | सिर-एन १ | awk '{प्रिंट $ 2}' ' # $ $ {शिकार} इको "$ {पीड़ित_नाम} को मार डाला।"
और याद रखें: हमेशा उन्हें सिर में गोली मारें।
एक ज़ोंबी प्रक्रिया एक ऐसी प्रक्रिया है जिसे निष्पादित करना समाप्त हो गया है, लेकिन अभी भी प्रक्रिया तालिका में सूचीबद्ध है।
मार -9 [अभिभावक process_name] इसे नीचे रखा जाएगा, अत्यधिक पूर्वाग्रह के साथ।