हम एक प्रक्रिया का उपयोग करते समय सेटिस्ड () का उपयोग क्यों करते हैं?


18

एक सेवा (डेमॉन) बनाने के लिए हमने माता-पिता को कांटा और बच्चे को सत्र का नेता बनाकर बाहर निकलने के लिए कहा setsid()। इसके अलावा, हम सेटसाइड () का उपयोग क्यों करते हैं? हमारी अनाथ प्रक्रिया का ध्यान रखा जाता है init(हालांकि सभी मामलों में नहीं) प्रक्रिया।

हम stsid () का उपयोग क्यों करते हैं? वहाँ के बीच कोई संबंध है setsid()और हैंडलिंग SIGHUPसंकेत।

जवाबों:


13

हम सेटसिड () का उपयोग करते हैं क्योंकि अगर हम सिर्फ माता-पिता को मारते हैं तो बच्चा भी मारा जाएगा, सेटिड ()

यदि कॉलिंग प्रक्रिया समूह लीडर नहीं है तो एक नया सत्र बनाता है । कॉलिंग प्रक्रिया नए सत्र का नेता है, नई प्रक्रिया समूह का प्रक्रिया समूह नेता है, और इसका कोई नियंत्रण टर्मिनल नहीं है।

माता-पिता पहली प्रक्रिया समूह के नेता हैं, इसे मारना - या सत्र / टर्मिनल को मारना - समूह को मारता है, यही कारण है कि हम नेता को स्विच करते हैं (और जब हम उस पर होते हैं तो एक नया सत्र बनाते हैं)।


1
सही है, लेकिन क्या इसका कोई संकेत है, जब मैं इसे भेजता हूं, जब इसे नियंत्रित करने वाला टर्मिनल खो जाता है
कालू

7
जब नियंत्रण टर्मिनल बंद होता है, तो माता-पिता को एक SIGHUP मिलता है। बच्चे को एक S नाईटअप नहीं मिलेगा क्योंकि यह एक नए सत्र में है।
ZN13
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.