Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

Linux में किसी प्रक्रिया को मारने के लिए कई तरीकों का उपयोग किया जा सकता है। यह ट्यूटोरियल आपको सिखाएगा कि टूटी हुई प्रक्रियाओं को कैसे ढूंढें और मारें।

एक प्रक्रिया आसानी से अनाथ हो सकती है। चाहे उद्देश्य से या नहीं, एक पैरेंट प्रक्रिया क्रैश हो सकती है और एक चाइल्ड प्रक्रिया को चलता हुआ छोड़ सकती है। कभी-कभी, एक पैरेंट प्रक्रिया एक पूर्ण चाइल्ड प्रक्रिया को प्राप्त करने में विफल होती है, और यह एक ज़ोंबी बन जाती है।

ये दोनों प्रक्रियाएं अटकी हुई हैं और मैन्युअल हस्तक्षेप की आवश्यकता है। जॉब कंट्रोल में प्रवेश करें। आइए देखें कि टूटी हुई प्रक्रियाओं को कैसे मारें।

आइए कुछ कमांड देखें:

  • top (और क्यों htop शायद बेहतर है)
  • ps
  • kill

Top (खोजें और नष्ट करें)

इससे पहले कि आप सभी प्रक्रियाओं को किल मैसेज भेजना शुरू करें, आपको यह जानना होगा कि आपके पास क्या है। हम यह नहीं मानते कि हमारे पास टूटी हुई प्रक्रियाएं चल रही हैं, और ठीक से जानते हैं कि क्या देखना है। यही top के लिए है। आइए vim चलाएं और इसे बैकग्राउंड में डालें।

Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

vim

ठीक है, अब हमारे पास एक प्रक्रिया है जिसके साथ हम सामान्य रूप से इंटरैक्ट नहीं कर सकते। आइए top चलाएं। सामान्य आउटपुट उपयोगी नहीं है, इसलिए हम एक फ़िल्टर चलाएंगे।

  • Shift+L दबाएं
  • vim टाइप करें
  • एंटर दबाएं
Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

top

वहां हमारा आउटपुट है। आप पहली लाइन पर ध्यान देंगे, यह हमें अपटाइम, उपयोगकर्ताओं की संख्या, और हमारे लोड औसत बताता है। आप कॉलम में महत्वपूर्ण जानकारी भी देखेंगे। सामान्य दिन-प्रतिदिन मैं S, %CPU, और TIME+ देख रहा हूं। यदि कोई प्रक्रिया Z (ज़ोंबी) स्थिति में है तो मुझे पता है कि इसे मारना है। यदि कोई प्रक्रिया 100% CPU से अधिक है, तो यह ओवररन है और इसे मारने की भी आवश्यकता हो सकती है। या यदि कोई प्रक्रिया कुछ दिनों से चल रही है, तो शायद इसे रीस्टार्ट करने का समय है। हालांकि यह संभवतः पागलपन है, और अधिकांश मामलों में आवश्यक नहीं है।

आज हम दूसरी लाइन देख रहे हैं, ज़ोंबी और अनाथों की तलाश में। हमारे उदाहरण के लिए हमारे पास कोई ज़ोंबी प्रक्रिया नहीं चल रही है, इसलिए हम “2 stopped” प्रक्रियाओं के लिए फ़िल्टर करेंगे।

  • o दबाएं
  • टाइप करें: S=T
Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

Filtering top

अब जब हम केवल S=T (state=stopped) फ़िल्टर में प्रक्रियाओं तक फ़िल्टर हो गए हैं, तो हम उन्हें मार सकते हैं। top में रहते हुए, आप k दबा सकते हैं, प्रोसेस PID दर्ज करें, और एंटर दबाएं। यदि आप इसके माध्यम से चला रहे हैं, तो आप देखेंगे कि इसे समाप्त होने में थोड़ा समय लग सकता है। इसके बजाय, k फिर से दबाएं, PID, दर्ज करें, और सिग्नल को 9 पर बदलें।

यह सही नहीं है, लेकिन यदि आपके पास स्टेटस विंडो के रूप में एक top विंडो चल रही है, तो आप पहले से ही वहां हैं। आप स्टॉप सिग्नल के बजाय किल सिग्नल भी भेज सकते हैं।

htop

ठीक है, मैं मानूंगा। यह top से बहुत अलग नहीं है। रंग को छोड़कर।

Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

htop

इतना रंग।

PS

PS, प्रोसेस स्टेटस। हमारे सिस्टम पर प्रोसेस जानकारी देखने के लिए हमारा प्यारा नेटिव यूटिलिटी। यह टूल /proc में फ़ाइलों से पढ़ता है। अधिकांश दिन, आप उपयोग करने जा रहे हैं:

Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

PS

  • -a, सभी उपयोगकर्ताओं के लिए प्रक्रियाएं दिखाएं
  • -u, प्रोसेस स्वामी प्रदर्शित करें
  • -x, टर्मिनल से जुड़ी नहीं प्रक्रियाएं दिखाएं

ps -aux अकेले चलाने से आपको सब कुछ मिलेगा, लेकिन यह शायद ही कभी उपयोगी है। आइए grep में पाइप करें, और अपना खोया हुआ vim ढूंढें।

Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

ps-aux command

और वहां यह है! आप वहां अपना वर्तमान grep कमांड भी देखेंगे। यदि आप वह नहीं चाहते हैं, तो अपने grep को थोड़ा बदलें।

Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

ps-aux command with grep

वहां। अब vim देखें, लेकिन हमें grep प्रोसेस न दिखाएं जो vim ढूंढ रहा है। अब आइए प्रोसेस को kill करें। हम killall से शुरू करेंगे, और फिर kill आज़माएंगे।

प्रोसेस को मारना (Killall और Kill)

ठीक है, हमारे पास वह है जो हमें चाहिए। एक प्रोसेस नाम (vim) और प्रोसेस आईडी (140464)। killall नामों का उपयोग करता है, और kill प्रोसेस आईडी का उपयोग करता है। प्रत्येक समान सिग्नल सेट भेजता है: HUP, INT, KILL, TERM, और STOP सबसे आम हैं। यदि आप अधिक सीखना चाहते हैं, तो kill -l के साथ सूची देखें।

Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

kill -l command

आइए सामान्य सिग्नल्स में गहराई से जाएं:

  • HUP, सिग्नल मान 1. हैंगअप। एक पुराना शब्द जो फोन और मॉडेम लाइन्स से बचा हुआ है। अधिकांश सिस्टम में हैंगअप एक डिमन को समाप्त करने के बजाय रीस्टार्ट करेगा।
  • INT, सिग्नल मान 2. इंटरप्ट। आमतौर पर, किसी प्रक्रिया के साथ इंटरैक्ट करते समय आप इसे इंटरप्ट करने के लिए CTRL+C भेज सकते हैं। kill -2 भेजने से वही इंटरप्ट सिग्नल चलता है।
  • KILL, सिग्नल मान 9. किल। यह आमतौर पर हम जो ढूंढ रहे हैं। यह एक PID को तुरंत मारता है।
  • TERM, सिग्नल मान 15. टर्मिनेट। यह एक प्रक्रिया के समाप्त होने का सामान्य व्यवहार है। यदि आप किसी प्रक्रिया के प्रति दयालु होना चाहते हैं, तो इसे समाप्त करने का यही तरीका है, ग्रेसफुली। डिफ़ॉल्ट रूप से, kill सिग्नल 15 भेजता है।
  • STOP, सिग्नल मान 17, 19, 23. यह एक प्रक्रिया को रोकता है। मान लें कि आप एक बड़ी निर्देशिका कॉपी कर रहे हैं, और महसूस करते हैं कि आप कुछ फ़ोल्डर्स हटाना चाहते हैं। SIGSTOP भेजें, फ़ोल्डर्स हटाएं, और SIGCONT के साथ फिर से शुरू करें।

ठीक है, मैंने सिग्नल मान जोड़े। ये सिग्नल का संख्यात्मक मान हैं और इन्हें SIGHUP टाइप करने के बजाय आपके kill कमांड में उपयोग किया जा सकता है। उदाहरण के लिए:

  • killall -9 vim

vim नाम की हर चीज़ को मारने का प्रयास करेगा। मैं सलाह देता हूं कि जब भी आप killall का उपयोग कर रहे हों, तो बाद में सत्यापित करें कि आपकी प्रक्रिया सफलतापूर्वक मारी गई है।

Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

killall -9 vim

यदि कुछ बचा है, तो kill -9 के बाद प्रोसेस आईडी से मैन्युअली मारें। जैसे:

  • kill -9 140464

निष्कर्ष

वहां है, एक प्रक्रिया को मारने का सरल स्पष्टीकरण। ओवररन प्रक्रियाओं के लिए top से शुरू करें। अटके हुए ग्राफिकल प्रक्रियाओं के लिए killall का उपयोग करें। kill के साथ किसी भी अवशेष को अलग करें। यह आपकी अधिकांश समस्याओं का ख्याल रखेगा।

संदेह में होने पर, रीबूट करें। रीबूट करने से पहले उचित अधिसूचना प्रक्रियाओं का पालन करें। अधिक शेल कमांड सीखें, और अपने Linux कौशल को निखारें।


  1. पोर्ट पर प्रोसेस कैसे मारें? पोर्ट पर प्रोसेस कैसे मारें?

    पोर्ट का उपयोग एप्लिकेशन द्वारा अपने सर्वर से डेटा भेजने और प्राप्त करने के लिए किया जाता है। प्रत्येक एप्लिकेशन संवाद करने के लिए पोर्ट के एक विशिष्ट सेट का उपयोग करता है और ये पोर्ट या तो स्वचालित रूप से या मैन्युअल रूप से खोले जाते हैं जब एप्लिकेशन इंस्टॉल होता है। इस लेख में, हम पोर्ट से संबंधित

  1. Linux में निर्देशिकाओं का आसान नाम बदलना: mv और rename कमांड में महारत हासिल करें Linux में निर्देशिकाओं का आसान नाम बदलना: mv और rename कमांड में महारत हासिल करें

    इस ट्यूटोरियल में, हम बताते हैं कि Linux में “mv” और “rename” कमांड का उपयोग करके किसी निर्देशिका का नाम कैसे बदलें। निर्देशिकाओं का नाम बदलना फ़ाइलों का नाम बदलने से बहुत अलग नहीं है। क्योंकि आखिरकार, यह Linux है, जहां सब कुछ एक फ़ाइल है। यहां तक कि निर्देशिकाएं भी। इसलिए, फ़ाइलों का नाम बदलने के स

  1. लिनक्स पर अनुत्तरदायी एप्लिकेशन को जबरन बंद कैसे करें लिनक्स पर अनुत्तरदायी एप्लिकेशन को जबरन बंद कैसे करें

    लिनक्स एक मजबूत ऑपरेटिंग सिस्टम है और अक्सर अनुत्तरदायी या सुस्त प्रदर्शन जैसे मुद्दों का सामना नहीं करता है। हालांकि, कभी-कभी, कुछ ऐप्स आप पर फ्रीज हो सकते हैं। आप या तो उनके प्रतिक्रिया देने या क्रैश होने का इंतजार कर सकते हैं या आप उन अनुत्तरदायी ऐप्स को किल कर सकते हैं। एक अनुत्तरदायी ऐप को किल