क्या इसमें कोई अंतर है
kill -9 212121
तथा
kill 212121
क्या इसमें कोई अंतर है
kill -9 212121
तथा
kill 212121
जवाबों:
उबंटू मैन पेज फॉर kill
द -9
स्विच का उद्देश्य बताता है (आमतौर पर एक तड़का हुआ फैशन में):
Name Num Action Description
KILL 9 exit cannot be blocked
यहाँ एक और आदमी पृष्ठ क्या कहता है।
आदेश
kill
निर्दिष्ट प्रक्रिया या प्रक्रिया समूह को निर्दिष्ट संकेत भेजता है। यदि कोई संकेत निर्दिष्ट नहीं है, तोTERM
संकेत भेजा जाता है।TERM
संकेत प्रक्रियाओं जो इस संकेत नहीं पकड़ मार डालेगा। अन्य प्रक्रियाओं के लिए,KILL
(9
) सिग्नल का उपयोग करना आवश्यक हो सकता है , क्योंकि यह सिग्नल पकड़ा नहीं जा सकता है।
इसलिए, -9
स्विच का उपयोग करना सुनिश्चित करता है कि प्रक्रिया प्रभावी रूप से मार दी गई है। भले ही एक जमे हुए या अनुत्तरदायी प्रक्रिया एक सरल TERM
संकेत का जवाब नहीं दे सकती है , यह एक KILL
संकेत भेजे जाने पर मर जाएगा ।
मार आदेश एक परिभाषित भेज देंगे संकेत दिए गए पहचान (पीआईडी) के साथ एक प्रक्रिया के लिए:
kill -<signal> <pid>
बेशक हम केवल उन प्रक्रियाओं को मार सकते हैं जो हम स्वयं करते हैं, जबकि जड़ सभी प्रक्रियाओं को मार सकती है। कंप्यूटिंग संकेतों के एक अच्छे सारांश के लिए विकिपीडिया देखें ।
संकेत kill
भेज सकते हैं मैनपेज में सूचीबद्ध हैं । संकेत को नाम या संख्या से दर्शाया जा सकता है। यदि कोई संकेत नहीं दिया जाता है तो डिफ़ॉल्ट संकेत 15 सम्मान। TERM
प्रयोग किया जाता है।
नीचे दिए गए सभी तीन आदेश समान हैं:
kill -9 1234
kill -KILL 1234
kill -SIGKILL 1234
के बीच का अंतर SIGTERM
और SIGKILL
जिस तरह से एक आवेदन संकेत पर कार्य कर सकते है:
TERM
: एक आवेदन को समाप्त करने में सक्षम होगा, यानी एक बंद दिनचर्या को ठीक से चलाएगा। KILL
: अनुप्रयोगों को तुरंत रोक दिया जाता है और मार दिया जाता है (जो कुछ मामलों में अनुमानित दुर्घटना की रिपोर्ट करने के लिए डेटा हानि या एपर्ट को बढ़ा सकता है)।ध्यान दें कि निम्नलिखित सभी पर्यायवाची हैं:
kill -9 1234
kill -KILL 1234
kill -SIGKILL 1234
यह इंगित करने योग्य है कि सिग्नल हैंडलिंग की दुनिया में, SIGKILL उन कुछ अनूठे लोगों में से एक है जिन्हें ऑपरेटिंग सिस्टम द्वारा नियंत्रित किया जाता है न कि प्रोग्राम। जब आप दौड़ते हैं kill -9
, तो आप एप्लिकेशन को खुद को समाप्त करने के लिए नहीं कह रहे हैं, इसके बजाय आप ओएस को प्रोग्राम को चलाने से रोकने के लिए कह रहे हैं, इससे कोई फर्क नहीं पड़ता कि प्रोग्राम क्या कर रहा है।
SIGKILL भेजे जाने के बाद , प्रोग्राम को तुरंत रोक दिया जाएगा। यदि प्रोग्राम की ओर से कोई कर्नेल कॉल चल रही हैं (उदाहरण के लिए फ़ाइल IO), तो कॉल के आधार पर वे कॉल समाप्त होने तक जारी रह सकती हैं या नहीं भी हो सकती हैं, लेकिन प्रोग्राम स्वयं कोई और नहीं चलेगा। ध्यान दें कि पता लगाया कार्य या कार्य एक डिबगर के तहत चल अलग ढंग से व्यवहार कर सकता है यहाँ।
दूसरा संकेत जो अवरुद्ध नहीं किया जा सकता है वह SIGSTOP है जिसका समान प्रभाव है, लेकिन इसके बजाय कार्यक्रम को जमा देता है; आप इसे फिर से शुरू करने के लिए बाद में SIGCONT भेज सकते हैं । यह व्यवहार पूरी तरह से ओएस द्वारा नियंत्रित किया जाता है, और कार्यक्रम को कोई पूर्व सूचना नहीं मिलती है।
अन्य सभी संकेतों को कार्यक्रम में भेजा जाता है; यह उन्हें चुन सकता है, हालांकि यह चुनता है, या यदि यह संकेत को अनदेखा करता है तो एक डिफ़ॉल्ट व्यवहार का पालन किया जाता है।
यहां कुछ उपयोगी संकेत दिए गए हैं जो आपको खुद को एक प्रक्रिया में भेजने के लिए मिल सकते हैं:
kill
killall
cat /etc/passwd | head -n1
SIGPIPE को cat
प्रक्रिया में भेजा जाएगा , जिससे cat
पूरी फाइल खत्म करने से पहले समाप्त हो जाएगी।जबकि ये सभी संकेत अपनी स्वयं की सेटिंग में "स्वाभाविक रूप से" होते हैं, आप वांछित परिणाम प्राप्त करने के लिए एक शर्त को नकली करने के लिए संकेत का उपयोग कर सकते हैं।
उदाहरण के लिए, यदि आप किसी के SSH सत्र को समाप्त करना चाहते हैं, तो आप इस प्रक्रिया को आसानी से मार सकते हैं, लेकिन ऐसा करके आप इसे अपनी HISTORY फ़ाइल को अपडेट करने से रोकेंगे, जो सुरक्षा कारणों से महत्वपूर्ण हो सकती है। लेकिन इसके बजाय यदि आप इसे SITEUP भेजते हैं , तो प्रक्रिया मान लेगी कि कनेक्शन मर गया है और अपने मानक सफाई का प्रदर्शन करेगा।
SIGQUIT
, जहां डिफ़ॉल्ट कार्रवाई कोर डंप और समाप्त करना है। इसका उपयोग किया जा सकता है यदि कोई प्रोग्राम बहुत गलत कर रहा है, तो आपको इसे तुरंत रोकने की आवश्यकता है, और बाद में इसे डिबग करने में सक्षम होना चाहेंगे।
किल -9 अर्थ: कर्नेल द्वारा प्रक्रिया को मार दिया जाएगा; इस संकेत को नजरअंदाज नहीं किया जा सकता है। 9 का मतलब होता है KILL सिग्नल जो कैटलेबल या इग्नोर नहीं होता
उपयोग: SIGKILL सिंघल
किल अर्थ: बिना किसी सिग्नल के किल कमांड 15 सिग्नल को पास करता है, जो प्रक्रिया को सामान्य तरीके से समाप्त करता है।
उपयोग: SIGTERM संकेत, जिसे प्रोग्रामर द्वारा नियंत्रित किया जा सकता है
kill -9