लाश DEAD प्रक्रियाएं हैं। वे 'मार नहीं सकते' (आप डीआईएडी को नहीं मार सकते)। सभी प्रक्रियाएं अंततः मर जाती हैं, और जब वे करते हैं तो वे लाश बन जाते हैं। वे लगभग कोई संसाधनों का उपभोग नहीं करते हैं, जो कि उम्मीद है कि क्योंकि वे मर चुके हैं! लाश का कारण इतना है कि ज़ोंबी के माता-पिता (प्रक्रिया) ज़ोंबी के बाहर निकलने की स्थिति और संसाधन उपयोग के आंकड़ों को पुनः प्राप्त कर सकते हैं। अभिभावक ऑपरेटिंग सिस्टम को संकेत देता है कि उसे अब वेट () सिस्टम कॉल का उपयोग करके ज़ोंबी की आवश्यकता नहीं है।
जब एक प्रक्रिया मर जाती है, तो उसका बच्चा सभी प्रक्रिया नंबर 1 के बच्चे बन जाते हैं, जो कि इनिट प्रक्रिया है। Init `` हमेशा '' बच्चों के मरने की प्रतीक्षा करता है, ताकि वे लाश के रूप में न रहें।
यदि आपके पास ज़ोंबी प्रक्रिया है, तो इसका मतलब है कि उन लाशों का उनके माता-पिता द्वारा इंतजार नहीं किया गया है (पीपीपी द्वारा प्रदर्शित ps -l
) देखें। आपके पास तीन विकल्प हैं: मूल प्रक्रिया को ठीक करें (इसे प्रतीक्षा करें); माता-पिता को मार डालो; या इसके साथ रहते हैं। याद रखें कि इसके साथ रहना इतना कठिन नहीं है क्योंकि पीएस के आउटपुट में लाश एक से अधिक अतिरिक्त लाइन लेती है।
लाश को एसटीएटी कॉलम में "Z" की उपस्थिति से यूनिक्स पीएस कमांड से आउटपुट में पहचाना जा सकता है। कुछ समय से अधिक समय तक मौजूद रहने वाली लाश आमतौर पर मूल कार्यक्रम में बग दर्शाती है। अन्य लीक की तरह, कुछ लाशों की उपस्थिति अपने आप में चिंताजनक नहीं है, लेकिन एक समस्या का संकेत दे सकती है जो भारी भार के तहत गंभीर हो जाएगी।
एक सिस्टम से लाश निकालने के लिए, SIGCHLD सिग्नल को पेरेंट को किल कमांड का उपयोग करके मैन्युअल रूप से भेजा जा सकता है। यदि अभिभावक प्रक्रिया अभी भी ज़ोंबी को वापस लेने से इनकार करती है, तो अगला कदम मूल प्रक्रिया को हटाना होगा। जब कोई प्रक्रिया अपने माता-पिता को खो देती है, तो init उसका नया अभिभावक बन जाता है। Init समय-समय पर माता-पिता के रूप में init के साथ किसी भी लाश को निकालने के लिए प्रतीक्षा प्रणाली कॉल को निष्पादित करता है।
अनाथ प्रक्रियाएं भी हैं जो एक कंप्यूटर प्रक्रिया है जिसकी मूल प्रक्रिया समाप्त या समाप्त हो गई है।
दूरस्थ मंगलाचरण के दौरान एक प्रक्रिया अनाथ हो सकती है जब क्लाइंट प्रक्रिया सर्वर का अनुरोध करने के बाद क्रैश हो जाती है।
अनाथ सर्वर के संसाधनों को बर्बाद कर सकते हैं और संभावित रूप से एक सर्वर को मुसीबत में छोड़ सकते हैं (यह लाश और अनाथों के बीच सबसे बड़ा संसाधन अंतर है (सिवाय अगर आप कुछ अनाथ ज़ोंबी फिल्म देखते हैं)। हालांकि, अनाथ प्रक्रिया समस्या के कई समाधान हैं:
तबाही सबसे अधिक इस्तेमाल की जाने वाली तकनीक है; इस मामले में अनाथ प्रक्रिया को मार दिया जाता है।
पुनर्जन्म एक ऐसी तकनीक है जिसमें मशीनें समय-समय पर किसी दूरस्थ कम्प्यूटेशन के माता-पिता का पता लगाने की कोशिश करती हैं; जिस बिंदु पर अनाथ प्रक्रियाओं को मार दिया जाता है।
समाप्ति एक ऐसी तकनीक है जहां प्रत्येक प्रक्रिया को मारे जाने से पहले समाप्त करने के लिए एक निश्चित समय आवंटित किया जाता है। यदि आवश्यकता हो तो एक प्रक्रिया आवंटित समय समाप्त होने से पहले समाप्त होने के लिए अधिक समय के लिए "पूछ" सकती है।
एक प्रक्रिया भी उसी मशीन पर चल सकती है, जो उसकी मूल प्रक्रिया है। UNIX जैसी ऑपरेटिंग सिस्टम में किसी भी अनाथ प्रक्रिया को विशेष "init" सिस्टम प्रक्रिया द्वारा तुरंत अपनाया जाएगा। इस ऑपरेशन को री-पैरेंटिंग कहा जाता है और स्वचालित रूप से होता है। भले ही तकनीकी रूप से इस प्रक्रिया में "मूल" प्रक्रिया अपने माता-पिता के रूप में है, फिर भी इसे प्रक्रिया के बाद से एक अनाथ प्रक्रिया कहा जाता है, जिसने मूल रूप से इसे बनाया था अब मौजूद नहीं है।
और जानकारी:
http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process#ixzz1PCN9vojU
http://www.linuxsa.org.au/tips/zombies.html
http://www.brighthub.com/computing/linux/articles/79186.aspx
उपयोगकर्ता इनपुट पर सिस्टम धीरे-धीरे हैंग होने और प्रतिक्रिया करने पर हैंगिंग प्रोसेस को कैसे पहचानें और कैसे मारें?
एक उबंटू मशीन में चल रही प्रक्रिया को दूर से एक विंडोज़ मशीन से मारना जो लैन में है