मैं केवल एक मूल प्रक्रिया को कैसे मार सकता हूं?


10

मेरे पास निम्नलिखित प्रक्रियाएं हैं।

ParentProcess
- चाइल्डप्रोसेस
- चाइल्डप्रोसेस
- चाइल्डप्रोसेस

मैं केवल मूल प्रक्रिया को कैसे मार सकता हूं? मैं चाहता हूं कि बच्चों को न मारा जाए। यदि मैं मूल प्रक्रिया को मारने की कोशिश करता हूं, तो बच्चे SITEUP प्राप्त करेंगे और मारे जाएंगे।


5
क्या एक बच्चे की प्रक्रिया की परिभाषा यह माता-पिता से जुड़ी है?
ब्रैड पैटन

umh, शायद हाँ। यह अपने माता-पिता से बंधा है।
kcm1700

जवाबों:


8

आमतौर पर, जब कोई प्रक्रिया अनाथ हो जाती है (अर्थात, उसके माता-पिता की मृत्यु हो जाती है) तो उसे 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


1
मैंने पहले से ही बिना किसी सुझाव, बिना किसी सुझाव के प्रक्रिया शुरू कर दी है?
kcm1700

जहां तक ​​मुझे पता है कि आप बहुत कुछ नहीं कर सकते। एक बार प्रक्रियाएं चलने के बाद, आप संकेतों पर प्रतिक्रिया करने के तरीके को बदल नहीं सकते हैं।
जामु

1
मैं nohup के तहत पहले से चल रही प्रक्रिया को कैसे करूँ? stackoverflow.com/questions/625409/…
पीटरवर्मोंट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.