Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

Linux में ज़ोंबी और ऑर्फ़न प्रोसेस

ज़ोंबी, ऑर्फ़न और डेमॉन प्रोसेस के बारे में विवरण निम्नलिखित हैं:

ज़ोंबी प्रोसेस

एक ज़ोंबी प्रोसेस वह प्रोसेस है जिसका निष्पादन पूरा हो चुका है लेकिन उसकी एंट्री अभी भी प्रोसेस टेबल में मौजूद है। ज़ोंबी प्रोसेस आमतौर पर चाइल्ड प्रोसेस के लिए होते हैं, क्योंकि पैरेंट प्रोसेस को अभी भी अपने चाइल्ड के एग्जिट स्टेटस को पढ़ने की आवश्यकता होती है। एक बार जब wait सिस्टम कॉल का उपयोग करके यह काम हो जाता है, तो ज़ोंबी प्रोसेस प्रोसेस टेबल से समाप्त हो जाता है। इसे ज़ोंबी प्रोसेस को "रीपिंग" (reaping) के रूप में जाना जाता है।

एक डायग्राम जो ज़ोंबी प्रोसेस के निर्माण और समाप्ति को दर्शाता है:

Linux में ज़ोंबी और ऑर्फ़न प्रोसेस

ज़ोंबी प्रोसेस किसी सिस्टम संसाधन का उपयोग नहीं करते लेकिन वे अपना प्रोसेस ID बनाए रखते हैं। यदि बहुत सारे ज़ोंबी प्रोसेस हैं, तो सभी उपलब्ध प्रोसेस IDs उन पर एकाधिकार कर लेते हैं। यह अन्य प्रोसेस को चलने से रोकता है क्योंकि कोई प्रोसेस IDs उपलब्ध नहीं होते।

ऑर्फ़न प्रोसेस

ऑर्फ़न प्रोसेस वे प्रोसेस हैं जो अभी भी चल रहे हैं भले ही उनका पैरेंट प्रोसेस समाप्त या समाप्त हो चुका हो। एक प्रोसेस जानबूझकर या अनजाने में ऑर्फ़न हो सकता है।

जानबूझकर ऑर्फ़न प्रोसेस

एक जानबूझकर ऑर्फ़न प्रोसेस किसी मैनुअल सपोर्ट के बिना बैकग्राउंड में चलता है। यह आमतौर पर अनिश्चित काल तक चलने वाली सर्विस शुरू करने के लिए या लंबे समय तक चलने वाले जॉब को उपयोगकर्ता के ध्यान के बिना पूरा करने के लिए किया जाता है।

अनजाने में ऑर्फ़न प्रोसेस

एक अनजाने में ऑर्फ़न प्रोसेस तब बनता है जब उसका पैरेंट प्रोसेस क्रैश या समाप्त हो जाता है। अनजाने ऑर्फ़न प्रोसेस को प्रोसेस ग्रुप मैकेनिज्म का उपयोग करके टाला जा सकता है।

तुलना

पहलू ज़ोंबी प्रोसेस ऑर्फ़न प्रोसेस
स्थिति समाप्त (डेड) लेकिन एंट्री मौजूद चल रहा है (अलाइव)
पैरेंट अभी भी जीवित मृत/समाप्त
संसाधन उपयोग कोई CPU/मेमोरी नहीं, केवल PID सामान्य संसाधन उपयोग
समाधान पैरेंट wait() कॉल करे init (PID 1) द्वारा अपनाया जाता है
खतरा PID थकावट संसाधन लीक यदि अनियंत्रित

डेमॉन प्रोसेस

डेमॉन प्रोसेस बैकग्राउंड प्रोसेस हैं जो उपयोगकर्ता के हस्तक्षेप के बिना चलते हैं। वे आमतौर पर बूट पर शुरू होते हैं और सिस्टम सेवाएं प्रदान करते हैं (जैसे httpd, sshd, cron)।

प्रैक्टिकल कमांड्स

# ज़ोंबी प्रोसेस ढूंढें
ps aux | grep Z

# ऑर्फ़न प्रोसेस ढूंढें (PPID = 1 लेकिन सिस्टम डेमॉन नहीं)
ps -eo pid,ppid,cmd | awk '$2==1 && $3!~/^\[/'

# पैरेंट को wait() के लिए मजबूर करें (यदि संभव हो)
kill -s SIGCHLD 

रोकथाम

  • ज़ोंबी रोकथाम: पैरेंट को wait(), waitpid(), या SIGCHLD हैंडलर का उपयोग करना चाहिए
  • ऑर्फ़न रोकथाम: setsid(), daemon(), या प्रोसेस ग्रुप्स का उपयोग करें
  • डबल-फोर्क तकनीक: डेमॉन बनाने के लिए मानक पैटर्न
  1. लिनक्स में I/O प्रोसेस की प्राथमिकता कैसे प्रबंधित करें लिनक्स में I/O प्रोसेस की प्राथमिकता कैसे प्रबंधित करें

    क्या आपने कभी दसियों या सैकड़ों गीगाबाइट डेटा कॉपी या मूव किया है? यदि आपने किया है, तो आपने निश्चित रूप से देखा होगा कि उस दौरान सिस्टम बहुत कम रिस्पॉन्सिव हो जाता है। लिनक्स पर आप ionice कमांड की मदद से इससे बच सकते हैं। I/O प्राथमिकता क्या है? I/O का अर्थ इनपुट/आउटपुट है। कई प्रकार के I/O डिवाइस

  1. Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

    Linux में किसी प्रक्रिया को मारने के लिए कई तरीकों का उपयोग किया जा सकता है। यह ट्यूटोरियल आपको सिखाएगा कि टूटी हुई प्रक्रियाओं को कैसे ढूंढें और मारें। एक प्रक्रिया आसानी से अनाथ हो सकती है। चाहे उद्देश्य से या नहीं, एक पैरेंट प्रक्रिया क्रैश हो सकती है और एक चाइल्ड प्रक्रिया को चलता हुआ छोड़ सकती

  1. लिनक्स पर अनुत्तरदायी एप्लिकेशन को जबरन बंद कैसे करें लिनक्स पर अनुत्तरदायी एप्लिकेशन को जबरन बंद कैसे करें

    लिनक्स एक मजबूत ऑपरेटिंग सिस्टम है और अक्सर अनुत्तरदायी या सुस्त प्रदर्शन जैसे मुद्दों का सामना नहीं करता है। हालांकि, कभी-कभी, कुछ ऐप्स आप पर फ्रीज हो सकते हैं। आप या तो उनके प्रतिक्रिया देने या क्रैश होने का इंतजार कर सकते हैं या आप उन अनुत्तरदायी ऐप्स को किल कर सकते हैं। एक अनुत्तरदायी ऐप को किल