ऐसी कई विधियाँ हैं जिनका उपयोग Linux में किसी प्रक्रिया को समाप्त करने के लिए किया जा सकता है। यह ट्यूटोरियल आपको सिखाएगा कि टूटी हुई प्रक्रियाओं को कैसे खोजना और मारना है।
एक प्रक्रिया आसानी से अनाथ हो सकती है। उद्देश्य पर या नहीं, एक मूल प्रक्रिया क्रैश हो सकती है और एक बच्चे की प्रक्रिया चल रही है। कभी-कभी, एक पैरेंट प्रक्रिया एक पूर्ण चाइल्ड प्रोसेस को काटने में विफल हो जाती है, और यह एक ज़ॉम्बी बन जाती है।
ये दोनों प्रक्रियाएँ अटकी हुई हैं और इन्हें मानवीय हस्तक्षेप की आवश्यकता है। नौकरी नियंत्रण दर्ज करें। आइए देखें कि टूटी हुई प्रक्रियाओं को कैसे खत्म किया जाए।
आइए कुछ कमांड देखें:
- शीर्ष (और क्यों htop शायद बेहतर है)
- ps
- मारें
शीर्ष (खोजें और नष्ट करें)
इससे पहले कि आप सभी प्रक्रियाओं को किल मैसेज भेजना शुरू कर सकें, आपको यह जानना होगा कि आपके पास क्या है। हम यह नहीं मानते हैं कि हमारे पास चल रही प्रक्रियाओं को तोड़ दिया है, और पता है कि वास्तव में क्या देखना है। यही हमारे पास शीर्ष है के लिये। चलो vim run चलाते हैं और इसे बैकग्राउंड में पॉप करें।
विम
ठीक है, अब हमारे पास एक प्रक्रिया है जिसके साथ हम सामान्य रूप से बातचीत नहीं कर सकते। चलो शीर्षचलाएं . सामान्य आउटपुट मददगार नहीं है, इसलिए हम एक फ़िल्टर चलाएंगे।
- Shift+l दबाएं
- टाइप करें vim
- एंटर दबाएं
शीर्ष
हमारा आउटपुट है। आप पहली पंक्ति पर ध्यान देंगे, यह हमें अपटाइम, उपयोगकर्ताओं की संख्या और हमारे लोड औसत के बारे में बताता है। आप कॉलम में महत्वपूर्ण जानकारी भी देखेंगे। सामान्य दिन-प्रतिदिन मैं देख रहा हूँ S , %CPU , और TIME+ . यदि कोई प्रक्रिया राज्य Z (ज़ोंबी) में है तो मैं उसे मारना जानता हूँ। यदि कोई प्रक्रिया 100% CPU से अधिक है, तो यह खत्म हो गई है और इसे मारने की भी आवश्यकता हो सकती है। या अगर कोई प्रक्रिया कुछ दिनों से चल रही है, तो शायद इसे फिर से शुरू करने का समय आ गया है। हालांकि यह संभवतः व्यामोह है, और अधिकांश मामलों में आवश्यक नहीं है।
आज हम दूसरी पंक्ति देख रहे हैं, लाश का शिकार करना और अनाथों की तलाश करना। हमारे उदाहरण के लिए हमारे पास एक ज़ोंबी प्रक्रिया नहीं चल रही है, इसलिए हम "2 रोकी गई" प्रक्रियाओं के लिए फ़िल्टर करेंगे।
- दबाएं ओ
- प्रकार:S=T
फ़िल्टरिंग शीर्ष
अब जबकि हमने केवल S=T . में प्रक्रियाओं को फ़िल्टर कर दिया है (राज्य =बंद) फिल्टर, हम उन्हें मार सकते हैं। शीर्ष पर रहते हुए, आप k . दबा सकते हैं , प्रक्रिया दर्ज करें PID , और एंटर दबाएं। यदि आप चल रहे हैं, तो आप देखेंगे कि इसे समाप्त होने में कुछ समय लग सकता है। इसके बजाय, k . दबाएं फिर से, PID, . दर्ज करें और सिग्नल को 9 . में बदलें ।
यह सही नहीं है, लेकिन यदि आपके पास एक शीर्ष विंडो स्थिति विंडो के रूप में चल रही है, तो आप पहले से ही वहां हैं। आप स्टॉप सिग्नल के बजाय किल सिग्नल भी भेज सकते हैं।
htop
ठीक है, मैं मानता हूँ। यह शीर्ष पर बहुत अलग नहीं है। रंग को छोड़कर।
एचटॉप
इतना रंग।
PS
पीएस, प्रक्रिया की स्थिति। हमारे सिस्टम पर प्रक्रिया की जानकारी देखने के लिए हमारी प्यारी देशी उपयोगिता। यह टूल /proc . की फाइलों से पढ़ता है . अधिकांश दिनों में, आप इसका उपयोग करने जा रहे हैं:
पीएस
- -a , सभी उपयोगकर्ताओं के लिए प्रक्रियाएं दिखाएं
- -u , प्रदर्शन प्रक्रिया के स्वामी
- -x , प्रक्रिया दिखाएं जो किसी टर्मिनल से जुड़ी नहीं है
चल रहा है ps -aux अकेले आपको सब कुछ और कुछ भी शुद्ध कर देगा, लेकिन यह शायद ही कभी मददगार होता है। आइए grep पर जाएं, और अपना खोया हुआ विम ढूंढें।
पीएस-ऑक्स कमांड
और वहाँ है! आप वहां अपना वर्तमान grep कमांड भी देखेंगे। अगर आप ऐसा नहीं चाहते हैं, तो अपने grep a smidge को बदल दें।
ps-aux कमांड grep के साथ
वहां। अब vim . खोजें , लेकिन हमें vim . की तलाश में grep प्रक्रिया न दिखाएं . अब आइए मारें प्रक्रिया। हम किलऑल . से शुरुआत करेंगे , और फिर कोशिश करें मारें ।
एक प्रक्रिया को मारना (मारना और मारना)
ठीक है, हमारे पास वह है जो हमें चाहिए। एक प्रक्रिया का नाम (vim ) और प्रक्रिया आईडी (140464)। मार डालना नामों का उपयोग करता है, और मार डालता है प्रक्रिया आईडी का उपयोग करता है। प्रत्येक सिग्नल का एक ही सेट भेजता है:HUP , INT , मारें , टर्म , और रोकें सबसे आम हैं। यदि आप अधिक जानना चाहते हैं, तो मार . के साथ सूची देखें -l ।
किल-एल कमांड
आइए सामान्य संकेतों पर गौर करें:
- एचयूपी , सिग्नल मान 1. हैंगअप। एक दिनांकित शब्द जो फोन और मॉडेम लाइनों के बाद से बचा हुआ है। अधिकांश सिस्टम में हैंगअप अंत के बजाय डेमॉन को फिर से शुरू करने का कारण बनेगा।
- INT , सिग्नल वैल्यू 2. इंटरप्ट। आम तौर पर, किसी प्रक्रिया के साथ इंटरैक्ट करते समय आप CTRL+C को इंटरप्ट करने के लिए भेज सकते हैं। किल -2 भेजने से वही इंटरप्ट सिग्नल चलता है।
- मारें , सिग्नल वैल्यू 9. मार डालो। हम आमतौर पर यही खोज रहे हैं। इससे पीआईडी तुरंत मर जाता है।
- अवधि , सिग्नल मान 15. समाप्त करें। समाप्त होने वाली प्रक्रिया के लिए यह सामान्य व्यवहार है। यदि आप किसी प्रक्रिया के प्रति दयालु होना चाहते हैं, तो आप इसे इस तरह से समाप्त करना चाहते हैं, शान से। डिफ़ॉल्ट रूप से, किल सिग्नल 15 भेजता है।
- रोकें , सिग्नल मान 17, 19, 23. यह एक प्रक्रिया को रोक देता है। मान लें कि आप एक बड़ी निर्देशिका की प्रतिलिपि बना रहे हैं, और महसूस करें कि आप कुछ फ़ोल्डरों को हटाना चाहते हैं। SIGSTOP भेजें, फ़ोल्डर हटाएं, और SIGCONT के साथ फिर से शुरू करें।
ठीक है, मैंने सिग्नल मान जोड़े हैं। वे एक संकेत के अंकीय मान हैं और आपके मार . में उपयोग किए जा सकते हैं SIGHUP टाइप करने के बजाय कमांड। उदाहरण के लिए:
- किलॉल -9 विम
विम नाम की हर चीज को मारने की कोशिश करेंगे। मेरा सुझाव है कि जब भी आप किलऑल का उपयोग कर रहे हों, तो आप सत्यापित करें कि आपकी प्रक्रिया बाद में सफलतापूर्वक समाप्त हो गई है।
किलॉल -9 विम
अगर कुछ बचा है, तो किल -9 . के साथ मैन्युअल रूप से किल करें प्रक्रिया आईडी के बाद। उदा.:
- मार -9 140464
निष्कर्ष
वहाँ यह है, एक प्रक्रिया को मारने की एक सरल व्याख्या। ओवररन प्रक्रियाओं के लिए शीर्ष से प्रारंभ करें। मार डालना का उपयोग करें अटकी हुई ग्राफिकल प्रक्रियाओं के साथ। किसी भी अवशेष को मार . से अलग करें . इससे आपकी अधिकांश समस्याओं का समाधान हो जाएगा।
जब संदेह हो, तो रिबूट करें। ऐसा करने से पहले उचित अधिसूचना प्रक्रियाओं का पालन करें। शेल कमांड के बारे में और जानें, और अपने Linux कौशल पर ब्रश करें।