"उपप्रकार" शब्द का उपयोग कुछ उत्तरों में किया जाता है। Google की खोज में प्रविष्टियाँ भी बदल जाती हैं जहाँ शब्द "बस उपयोग किया जाता है"।
मैं कैसे समझ सकता हूं कि एक "सबप्रिपर" क्या है?
"उपप्रकार" शब्द का उपयोग कुछ उत्तरों में किया जाता है। Google की खोज में प्रविष्टियाँ भी बदल जाती हैं जहाँ शब्द "बस उपयोग किया जाता है"।
मैं कैसे समझ सकता हूं कि एक "सबप्रिपर" क्या है?
जवाबों:
सिस्टम कॉल prctl () के झंडे के रूप में इसे लिनक्स कर्नेल 3.4 पर लागू किया गया था ।
से prctl(2)
मैनपेज:
[...] एक उपप्रवासी
init(1)
अपने वंशज प्रक्रियाओं के लिए भूमिका को पूरा करता है। अनाथ हो जाने वाली प्रक्रिया (अर्थात, उसके तत्काल माता-पिता को पहले ही समाप्त कर दिया गया है) की समाप्ति पर और एक उप-सहायक के रूप में चिह्नित किया गया है, निकटतम अभी भी रहने वाले पूर्वज उपप्रवासी को एकSIGCHLD
संकेत प्राप्त होगा औरwait(2)
अपनी समाप्ति स्थिति की खोज करने की प्रक्रिया में सक्षम होगा ।
एक प्रक्रिया अपने आप को एक उप-सहायक के रूप में परिभाषित कर सकती है prctl(PR_SET_CHILD_SUBREAPER)
। यदि ऐसा है, तो यह init
(पीआईडी 1) नहीं है जो अनाथ बच्चे की प्रक्रियाओं का माता-पिता बन जाएगा , इसके बजाय निकटतम जीवित दादा-दादी जो कि उप-सहायक के रूप में चिह्नित हैं, नए माता-पिता बन जाएंगे। अगर कोई जीवित दादा-दादी नहीं है, init
तो।
इस तंत्र को लागू करने के कारण यह है कि यूज़रस्पेस सेवा प्रबंधकों / पर्यवेक्षकों (की तरह था upstart
, systemd
) अपने शुरू कर दिया सेवाओं पर नज़र रखने की जरूरत है। कई सेवाएं डबल-फोर्किंग के माध्यम से निष्क्रिय हो जाती हैं और पीआईडी 1 को फिर से समरूप हो जाती हैं । सेवा प्रबंधक अब SIGCHLD
उनके लिए सिग्नल प्राप्त नहीं कर पाएगा , और अब बच्चों के साथ फिर से काम करने के लिए प्रभारी नहीं है wait()
। बच्चों के बारे में सभी जानकारी पल में खो जाती है पीआईडी 1 फिर से परेड प्रक्रियाओं को साफ करता है। अब, एक सेवा प्रबंधक प्रक्रिया खुद को "उप-इनिट" के रूप में चिह्नित कर सकती है, और अब शुरू की गई सेवाओं द्वारा बनाई गई सभी अनाथ प्रक्रियाओं के लिए माता-पिता के रूप में रहने में सक्षम है। सभी SIGCHLD
सिग्नल सेवा प्रबंधक को दिए जाएंगे।
लिनक्स में, एक डेमॉन आमतौर पर दो बार पोते के जाने के बाद बाहर निकलने वाली मध्यवर्ती प्रक्रिया के साथ फोर्क करके बनाया जाता है । ज़ोंबी प्रक्रियाओं से बचने के लिए यह एक सामान्य तकनीक है । Init स्क्रिप्ट एक बच्चे को बुलाती है। वह बच्चा फिर से जन्म लेता है और इस तरह तुरंत बाहर निकल जाता है। पोते द्वारा गोद लिया जाएगा init
, जो लगातार wait()
लाश से बचने के लिए अपने बच्चों की निकास स्थिति को इकट्ठा करने के लिए कहता है। सबरेपर्स की अवधारणा के साथ, यूजरस्पेस सेवा प्रबंधक अब इसके बजाय नए अभिभावक बन गए हैं init
।