SIGSTOP
और SIGKILL
दो संकेत हैं जिन्हें किसी प्रक्रिया द्वारा पकड़ा और संभाला नहीं जा सकता है। SIGTSTP
की तरह है SIGSTOP
सिवाय इसके कि यह कर सकते हैं पकड़ लिया और नियंत्रित किया।
SIGSTOP
और SIGTSTP
संकेतों ने रास्ते में ही एक प्रक्रिया को रोकने, के लिए तैयार हो SIGCONT
। जब आप उस प्रक्रिया को भेजते हैं SIGTERM
, तो प्रक्रिया नहीं चल रही है और इसलिए यह बाहर निकलने के लिए कोड नहीं चला सकता है।
(वहाँ भी हैं SIGTTIN
और SIGTTOU
, जो टीटीवाई परत द्वारा उत्पन्न संकेत हैं जब एक पृष्ठभूमि वाली नौकरी टर्मिनल को पढ़ने या लिखने की कोशिश करती है। उन्हें पकड़ा जा सकता है लेकिन अन्यथा प्रक्रिया को रोक देगा (निलंबित), ठीक वैसे ही SIGTSTP
। लेकिन मैं अब जा रहा हूं। इस उत्तर के शेष के लिए उन दोनों को अनदेखा करें।)
आपकी CtrlZप्रक्रिया प्रक्रिया को भेजती है SIGTSTP
, जो किसी भी तरह से विशेष रूप से नियंत्रित करने के लिए नहीं दिखाई देती है rsyslogd
, इसलिए यह बस लंबित प्रक्रिया को निलंबित कर देती है SIGCONT
या SIGKILL
।
यहां समाधान भी SIGCONT
आपके बाद भेजना है SIGTERM
ताकि प्रक्रिया सिग्नल प्राप्त कर सके और संभाल सके।
उदाहरण:
sleep 999 &
# Assume we got PID 456 for this process
kill -TSTP 456 # Suspend the process (nicely)
kill -TERM 456 # Terminate the process (nicely). Nothing happens
kill -CONT 456 # Continue the process so it can exit cleanly
जीएनयू सी लाइब्रेरी के लिए प्रलेखन यह अच्छी तरह से समझाता है, मुझे लगता है (मेरी हाइलाइटिंग):
जबकि एक प्रक्रिया को रोक दिया जाता है, कोई और संकेत तब तक इसे वितरित नहीं किया जा सकता है जब तक कि इसे जारी रखा न जाए , सिवाय SIGKILL
संकेतों और (स्पष्ट रूप से) SIGCONT
संकेतों के। संकेतों को लंबित के रूप में चिह्नित किया जाता है, लेकिन तब तक वितरित नहीं किया जाता जब तक कि प्रक्रिया जारी न रखी जाए। सिग्नल हमेशा प्रक्रिया की समाप्ति का कारण बनता है और, अवरुद्ध नहीं किया जा सकता संभाला या नजरअंदाज कर दिया। आप अनदेखा कर सकते हैं , लेकिन यह हमेशा प्रक्रिया को जारी रखने का कारण बनता है अगर इसे रोका जाता है। किसी प्रक्रिया को सिग्नल भेजने से उस प्रक्रिया के किसी भी लंबित स्टॉप सिग्नल को छोड़ दिया जाता है। इसी तरह, किसी प्रक्रिया के लिए किसी भी लंबित सिग्नल को रोक दिया जाता है, जब वह स्टॉप सिग्नल प्राप्त करता हैSIGKILL
SIGCONT
SIGCONT
SIGCONT
kill -15
आपके द्वारा पहले ही भेजा गया है"।