सामान्य तौर पर यह इस तरह से करना ठीक होना चाहिए।
जब आप टर्मिनल विंडो को बंद करने के लिए "X" पर क्लिक करते हैं, जो आपके डेस्कटॉप (GNOME, KDE, आदि) से टर्मिनल एप्लिकेशन को "सिग्नल" भेज रहा है, तो इसे स्वयं बंद करने के लिए कह रहा है। चूंकि आप इस शेल में MATLAB चला रहे हैं इसलिए इसे टर्मिनल एप्लिकेशन के लिए एक चाइल्ड प्रोसेस माना जाता है।
तो माता-पिता की प्रक्रिया होने की ज़िम्मेदारियों का एक हिस्सा यह है कि आप बदले में अपने बच्चों के लिए यह वही "संकेत" भेजें।
अब यदि आप वैचारिक रूप से समझते हैं कि मैंने अभी क्या समझाया है तो चलिए वास्तविक शब्दावली में थोड़ा और स्थान लेते हैं।
संकेत
पहले "सिग्नल" के साथ, वास्तव में विभिन्न संकेतों का एक पूरा परिवार है जो आप यूनिक्स प्रक्रियाओं को भेज सकते हैं। यह सरल रखने के लिए देखते हैं 4 है कि आप अक्सर देखेंगे, SIGHUP
, SIGTERM
, SIGINT
, और SIGKILL
।
उच्छ्वास करो
जब उसके नियंत्रण टर्मिनल को बंद कर दिया जाता है, तो उसे सिग्नल सिग्नल एक प्रक्रिया में भेजा जाता है। यह मूल रूप से एक सीरियल लाइन ड्रॉप की प्रक्रिया को सूचित करने के लिए डिज़ाइन किया गया था। आधुनिक प्रणालियों में, इस संकेत का आमतौर पर मतलब है कि छद्म या आभासी टर्मिनल को नियंत्रित करना बंद कर दिया गया है।
SIGTERM
SIGTERM संकेत एक सामान्य संकेत है जिसका उपयोग कार्यक्रम समाप्ति के लिए किया जाता है। SIGKILL के विपरीत, इस सिग्नल को अवरुद्ध, नियंत्रित और अनदेखा किया जा सकता है। किसी कार्यक्रम को विनम्रतापूर्वक समाप्त करने का सामान्य तरीका है।
SIGINT
जब उपयोगकर्ता INTR वर्ण (सामान्य रूप से Cc) टाइप करता है, तो संकेत ("प्रोग्राम इंटरप्ट") संकेत भेजा जाता है।
SIGKILL
SIGKILL सिग्नल का उपयोग तत्काल प्रोग्राम समाप्ति के लिए किया जाता है। इसे संभाला या अनदेखा नहीं किया जा सकता है, और इसलिए यह हमेशा घातक होता है। इस सिग्नल को ब्लॉक करना भी संभव नहीं है।
नोट: SIGINT
जब आप का उपयोग क्या भेजा जाता है Ctrl+ C, जबकि यह चल रहा है के बीच में है कमांड लाइन से "तोड़" एक कार्यक्रम के लिए।
कौन सा उपयोग हो रहा है?
सबसे अधिक संभावना यह SIGTERM
है कि आपके विंडो वातावरण द्वारा कॉल किया जा रहा है और आपके टर्मिनल तक नीचे जा रहा है। आपका टर्मिनल तब सबसे अधिक संभावना है, फिर SIGHUP
MATLAB को भेज रहा है। यह संकेत सभी प्रक्रियाओं को किसी भी स्थानीय सफाई (समापन फ़ाइलें, प्रक्रियाओं को समाप्त करने, आदि) को स्वयं करने का अवसर देता है।
मार कमान
तुम्हें पता है, संकेत अपने आप को खराब नामित आदेश का उपयोग कर भेज सकते हैं kill
। तो SIGTERM
अपने टर्मिनल या SIGHUP to MATLAB, you could determine their PID using
ps` को सिग्नल भेजने के लिए और फिर उन्हें सिग्नल भेजने के लिए यह कमांड चलाएँ:
$ kill -SIGTERM <PID>
या यह:
$ kill -SIGHUP <PID>
आप इस कमांड का उपयोग करके संकेतों की पूरी सूची प्राप्त कर सकते हैं:
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
...
...
ध्यान दें कि सिग्नल में नंबर हैं? आप अक्सर उन्हें अपने नामों के बजाय इस तरह से इस्तेमाल करते हुए देखेंगे:
$ kill -15 <PID>
या बदनाम -9
, जो किसी भी प्रक्रिया को बहुत मार सकता है।