आमतौर पर, जब कोई प्रक्रिया अनाथ हो जाती है (अर्थात, उसके माता-पिता की मृत्यु हो जाती है) तो उसे init द्वारा अपनाया जाता है।
जब आप अपने टर्मिनल को नियंत्रित करते हैं ( विकिपीडिया से ) बंद करते हैं तो आपके द्वारा बताई गई विशेष स्थिति संभवतः एक इंटरैक्टिव प्रक्रिया पर लागू होती है :
जब उसके नियंत्रित टर्मिनल को बंद कर दिया जाता है, तो उसे सिग्नल सिग्नल एक प्रक्रिया में भेजा जाता है। यह मूल रूप से एक सीरियल लाइन ड्रॉप की प्रक्रिया को सूचित करने के लिए डिज़ाइन किया गया था। आधुनिक प्रणालियों में, इस संकेत का आमतौर पर मतलब है कि छद्म या आभासी टर्मिनल को नियंत्रित करना बंद कर दिया गया है।
इसे रोकने के लिए, बाल प्रक्रियाओं को SIGHUP को ब्लॉक करना चाहिए, इसलिए ज्यादातर मामलों में आपको मूल प्रक्रिया से सहयोग की आवश्यकता होती है।
अगर माता-पिता की प्रक्रिया एक खोल (है bash
, csh
और की तरह) और आप आदेशों को आप समाप्त करने के लिए नहीं है जब पार्टी खत्म, आप के साथ किसी भी आदेश उपसर्ग कर सकते हैं चलाने चाहते हैं nohup
(से info coreutils "nohup invocation"
):
'nohup' दिए गए COMMAND को हैंगअप संकेतों के साथ अनदेखा करता है, ताकि आप लॉग आउट करने के बाद कमांड को पृष्ठभूमि में चालू रख सकें।
इस उदाहरण में:
$ tty
/dev/ttys000
$ nohup find /dir -name file -exec rm {} \;
find
जब शेल समाप्त हो जाएगा और नियंत्रण टर्मिनल को बंद नहीं किया जाएगा /dev/ttys000
।
यदि शेल स्क्रिप्ट को SIGHUP को ब्लॉक करना चाहिए, तो अंतर्निहित का उपयोग करें trap
, जैसा कि यहां बताया गया है bash
।