एक आदेश के साथ एक प्रक्रिया को मार डालो

कई बार हमें टर्मिनल के माध्यम से एक प्रक्रिया को मारने की आवश्यकता होती है। यदि हम प्रक्रिया का पूरा नाम जानते हैं (उदाहरण के लिए: केट) हमें कोई समस्या नहीं है, एक सरल:

killall kate

यह हमारे लिए समस्या को हल करता है ... लेकिन अगर हमें प्रक्रिया का सही नाम नहीं पता है तो क्या होगा?

उन अवसरों पर, हमें सभी प्रक्रियाओं को सूचीबद्ध करना होगा ps aux जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है:


फिर प्रक्रिया के पीआईडी ​​की तलाश करें, इस मामले में हम पीआईडी ​​की तलाश करते हैं केट:


तब तक करें:

kill 3808

और वोइला, वहाँ हम इस प्रक्रिया को मार देते हैं।

खैर ... एक एकल पंक्ति में हम इस प्रक्रिया को खोज सकते हैं (पूरा नाम जाने बिना), इसकी पीआईडी ​​का पता लगा सकते हैं, और इसे भी मार सकते हैं:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill

जैसा कि आप देख सकते हैं:

  1. हम प्रक्रियाओं को सूचीबद्ध करते हैं (ps aux)
  2. हम पूर्ण या सटीक नाम नहीं जानते हैं केट (हे, यह केट-संपादक या ऐसा कुछ हो सकता है) इसलिए हम केवल फ़िल्टर करते हैं कैट (ग्रेप कैट)
  3. लेकिन हम kat से संबंधित दो प्रक्रियाएँ प्राप्त करेंगे यदि हम केवल इस फ़िल्टर का उपयोग करते हैं, एक जो केट प्रक्रिया है, और दूसरी वह प्रक्रिया है जिसे हम फ़िल्टर करने के लिए सक्रिय करते हैं, मैं आपको एक स्क्रीनशॉट छोड़ देता हूँ ताकि आप समझ को समाप्त कर सकें: (ध्यान दें कि 2 लाइनें हैं, यानी 2 प्रक्रियाएं)

  4. जो पहले समझाया गया था, उससे बचने के लिए, हम एक और फ़िल्टर बनाते हैं (ग्रेप -वी ग्रेप) का है। हम इसके विपरीत क्या करेंगे ... अगर हम grep का उपयोग करके फ़िल्टर करते हैं, तो यह केवल फिल्टर के साथ मैच दिखाएगा, साथ ही साथ ग्रेप -वी हम आपको निर्देश देते हैं कि मैच न दिखाएं, लेकिन यह दिखाने के लिए कि क्या मेल नहीं खाता है। मैं आपको स्क्रीनशॉट दिखाता हूं कि अब तक का परिणाम कैसा होगा: (ध्यान दें कि अब केवल केट की प्रक्रिया दिखाई देती है)

  5. ठीक है, हमारे पास पहले से ही वह प्रक्रिया है जिसे हम अलग-थलग करना चाहते हैं, अब हमें केवल इसकी PID को निकालना है, जो कि 2nd नंबर है, अर्थात 4062। और पीआईडी ​​2 कॉलम में है (1 कॉलम में यूआईडी 1000 वाला उपयोगकर्ता है), इसलिए awk का उपयोग करके हम कह सकते हैं कि यह केवल उस पंक्ति से पता चलता है जो इसे दूसरे कॉलम में मिलती है (awk '{प्रिंट $ 2}') है। जो हमें केवल प्रक्रिया संख्या दिखाएगा, अर्थात टर्मिनल में केवल PID दिखाई देगा।
  6. लेकिन हम पीआईडी ​​नहीं दिखाना चाहते हैं, हम जो चाहते हैं, उस पीआईडी ​​के साथ प्रक्रिया को मारना है ... इसलिए हम ऐसा करेंगे, हम पास करेंगे जो हमारे पास अब तक कमांड की ओर है हत्या और त्यार (xargs मार डालते हैं)
  7. उस xargs का क्या मतलब है? ... सरल, इस मामले में हम केवल पाइप से मारने के लिए पीआईडी ​​पास नहीं कर सकते ( | ), यह बस पर्याप्त नहीं है, इसलिए xargs (जो मूल्यों या डेटा को पारित करने और फिर उन्हें निष्पादित या मारने की अनुमति देता है) वही है जो हमें काम खत्म करने की अनुमति देगा।

और यहाँ यह 😀 समाप्त होता है

हां ... मुझे पता है कि यह थोड़ा जटिल लगता है, यही कारण है कि मैंने इसे सर्वश्रेष्ठ रूप में समझाने की कोशिश की है।

मुझे पता है कि संभवतः कुछ ही लोगों को इस कमांड की आवश्यकता होगी, लेकिन इस लेख का उद्देश्य वही है DesdeLinux, उन्हें हर दिन कुछ नया सिखाएं, हमेशा यह प्रयास करें कि उनका लिनक्स के प्रति डर दूर हो... और, व्यक्तिगत रूप से, मुझे यह भी अच्छा लगेगा कि वे बिना किसी डर के टर्मिनल का उपयोग करना सीखें 😉

वैसे भी ... मुझे आशा है कि आपको यह दिलचस्प लगा होगा, मैं सीखता हूं कि कैसे उपयोग करना है awk जो वास्तव में बहुत अच्छा है।

सादर


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   एज़िटोक कहा

    यह सच है, awk मेरे लिए बहुत उपयोगी रहा है और मुझे लगता है कि जिस किसी को भी संरचित पाठ फ़ाइलों में हेरफेर करने की आवश्यकता है, उसे यह जानने की अत्यधिक अनुशंसा की जाती है कि इसका उपयोग कैसे किया जाए।

    मेरे पास बस एक सवाल है (जिसका इनपुट से कोई लेना-देना नहीं है: D), कैसे (और किस प्रोग्राम के साथ) आपने वह धब्बा प्रभाव बनाया जो आपको स्क्रीनशॉट के एक हिस्से को उजागर करने की अनुमति देता है?

    नमस्ते.

    1.    एज़िटोक कहा

      प्रोबेंडो अगर प्रारूप से यह यह काम करता है और यदि नहीं कोई मुझे बताए कि यह कैसे करना है

      बहुत बहुत धन्यवाद.

    2.    KZKG ^ गारा कहा

      अच्छा हाँ ... मैंने अब लिनक्स को फिर से खोज लिया है कि मुझे पता है कि awk HAHAHAHA के साथ कैसे काम करना है।
      प्रभाव और इस तरह के बारे में, कुछ भी नहीं ... यह सिर्फ जिम्प, है

      मैं उस हिस्से का चयन करता हूं जिसे मैं हाइलाइट करना चाहता हूं, इसे [Ctrl] + [X] के साथ काटकर एक नई परत के रूप में पेस्ट करता हूं, फिर मैं निचली परत का चयन करता हूं (जो मैं अपारदर्शी करना चाहता हूं) और फिल्टर पर जाएं- » गाऊसी (या आप जो भी लिखते हैं) और वोइला।
      अब, इसे गहरा प्रभाव देने के लिए, मैं बस एक नई परत (सफेद पृष्ठभूमि) बनाता हूं और इसे इन दोनों के बीच रखता हूं जो मेरे पास पहले से था, मैं इसे काला रंग देता हूं और पारदर्शिता बार (ऊपरी दाएं कोने) में इसे स्थानांतरित करता हूं जहां से मैं वांछित प्रभाव प्राप्त करता हूं।

      अभिवादन और टिप्पणी के लिए धन्यवाद for

      1.    रॉबर्टो इवोल्यूशन सैन्टाना कहा

        बड़े!!

  2.   मैनुअल डे ला फूएंते कहा

    यदि प्रक्रिया एक ऐसे प्रोग्राम से है जो दिखाई दे रहा है, तो टाइपिंग से अधिक आरामदायक कुछ भी नहीं है Xkill कंसोल पर, मारने के लिए प्रोग्राम और वॉइला पर क्लिक करें।

    1.    KZKG ^ गारा कहा

      मारने के लिए प्रोग्राम पर क्लिक करें
      अरे हाँ ... यह मानकर कि आपके पास जीयूआई है।

      1.    मैनुअल डे ला फूएंते कहा

        यह सही है, इसीलिए मैंने कहा "यदि प्रक्रिया एक ऐसे कार्यक्रम से है जो दिखाई दे रहा है।"

        1.    पवनसुत कहा

          "एक्स" के साथ बटन पर क्लिक करना आसान है। GNOME शेल में अभी भी वह बटन सही है? : -डॉ।

          1.    मैनुअल डे ला फूएंते कहा

            यदि कार्यक्रम जमे हुए है (जो कि मुख्य कारण है कि आपको इसकी प्रक्रिया को मारने की आवश्यकता होगी) तो यह तर्कसंगत है कि यह बटन कोई फर्क नहीं पड़ता कि आप इसे कितना दबाते हैं।

            मुझे लगता है कि गनोम शेल इसे जल्द ही हटा देगा ताकि आप विंडोज़ 8 की तरह स्क्रीन के नीचे तक खींचकर खिड़कियों को बंद करने के स्पर्श के आश्चर्य को देख सकें। वाइडस्क्रीन मॉनिटर पर यह कहने की आवश्यकता नहीं है कि यह एक शानदार व्यायाम है।

          2.    पवनसुत कहा

            मैं अब समझता हूँ। उस स्थिति में मैं नियंत्रण + Alt + Esc (KDE में) पसंद करता हूं।

            मैं नए गनोम शैल पूर्वावलोकन को देखने के लिए इंतजार नहीं कर सकता, वे एक वास्तविक उपचार हैं।

  3.   उचित कहा

    यह वही करता है लेकिन कम लिखा जाता है।
    इस मामले में मैंने लीफपैड को एक उदाहरण के रूप में लिया, यही कारण है कि पत्ती ग्रेप में दिखाई देती है
    ps -e | grep leaf | awk '{print $1}' | xargs kill

    सादर

  4.   सीस कहा

    काहे! मेरे बेटे, "pgrep kat" चलाने की कोशिश करो, जो किसी चीज़ के लिए "pgrep" है।

    और "आदमी pgrep" निष्पादित करने के लिए। और "मैन पिडोफ", जो कभी-कभी "पिडोफ" आपकी मदद कर सकता है।

    और निष्पादित करने के लिए «ps aux | grep [k] पर ", जो कि" हम जिस फ़िल्टरिंग के लिए सक्रिय करते हैं, "आप जो टिप्पणी करते हैं, उसके परिणामस्वरूप वापस नहीं आएंगे, इस प्रकार आप काम करते हैं।

    Saludos ¡!

    1.    सीस कहा

      ओह, और "pkill", जो वह करता है जो आप ढूंढ रहे हैं। उदाहरण के लिए: "pkill kat"।

    2.    KZKG ^ गारा कहा

      ओह, दिलचस्प ... मुझे नहीं पता था pgrep didn't
      टिप के लिए धन्यवाद 😀

      1.    सीस कहा

        आपका और आपके लेखों का धन्यवाद।

        वैसे, में https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ «ps aux | जैसे कमांड का उपयोग करने की तकनीक पर टिप्पणी करें grep [n] program_name ", वे मुझे वहां से बेहतर समझाते हैं।

        Saludos ¡!

        1.    KZKG ^ गारा कहा

          लिंक के लिए धन्यवाद 😀
          इसके अस्तित्व के बारे में यही बड़ी बात है। DesdeLinux...इससे कोई फर्क नहीं पड़ता कि आप एक उपयोगकर्ता, संपादक या व्यवस्थापक हैं, हम सभी हमेशा नई चीजें सीखते हैं 🙂

          बधाई और धन्यवाद फिर से दोस्त।

  5.   कोस्टे कहा

    अपने समय और समर्पण के लिए आप सभी का बहुत-बहुत धन्यवाद, यह दिन में कई बार इस साइट पर आने और पढ़ने के लायक बनाता है।

    एक बार फिर धन्यवाद।

  6.   श्री लिनक्स। कहा

    KZKG ^ गारा लगभग हमेशा एक ही है, जब इस तरह के सुझावों की बात आती है, तो एक अन्य व्यक्ति होता है जो एक साधारण आदेश के साथ ऐसा ही करता है। लेकिन मैं उसे बधाई देता हूं, वह हमेशा लगातार योगदान दे रहा है।

    1.    KZKG ^ गारा कहा

      अरे हाँ ... मुझे पता है कि एक्स ओसा कैसे करना है और मैं यहां आता हूं और विधि साझा करता हूं, लेकिन फिर वे एक ही बात को प्राप्त करने के लिए एक सरल तरीका साझा करते हैं हाहाहा, लेकिन इसके साथ हम सभी जीतते हैं, है ना? 😀

      1.    ट्रूको२२ कहा

        यह सही है 0 /

      2.    मैनुअल डे ला फूएंते कहा

        हाहाहा, तुम हमेशा सबसे जटिल तरीके से चलते हो। 😀

        1.    KZKG ^ गारा कहा

          HAHAH हाँ, मैंने हमेशा सोचा है: «अगर मुझे पता है कि इसे कठिन तरीके से कैसे करना है, तो मुझे पता होगा कि समस्याओं के बिना इसे सरल तरीके से कैसे करना सीखें।»और ... इसके विपरीत, वही हाहा काम नहीं करता है।

  7.   ऑस्कर कहा

    समस्या यह होगी कि यदि हमारे पास एक समान नाम वाली दो प्रक्रियाएं हैं।
    उदाहरण के लिए, केट की एक प्रक्रिया और ... एमएमएम ... की एक और प्रक्रिया केटर एक्सडी कहती है
    ऐसी आज्ञा से हम दोनों को मार देंगे, है ना?

    1.    KZKG ^ गारा कहा

      खैर, हाँ, यह होगा would

  8.   ट्रूको२२ कहा

    टीटी गरीब केट मैं केडीई में xkill का उपयोग करता हूं इसे "ctrl + alt + esc" के साथ या "ctrl + Esc" ओपन "सिस्टम एक्टिविटी" के साथ जल्दी से लॉन्च किया जाता है और इसे ग्राफिक रूप से करते हैं। अब टर्मिनल के माध्यम से इस प्रक्रिया को सीखना चाहिए, हालांकि मेरे पास स्थिर डेबियन के साथ एक होम सर्वर है और यह बिल्कुल भी लटका नहीं है।

  9.   Yulian कहा

    महान! अभी जब मैं ऑपरेटिंग सिस्टम पाठ्यक्रम ले रहा हूं और मुझे टर्मिनल के साथ कार्य करने की आवश्यकता है, तो आपके ट्यूटोरियल को बहुत मदद मिली! धन्यवाद

  10.   पाब्लो कहा

    बहुत अच्छी तरह से समझाया, महान ब्लॉग जो मुझे मिला, मैं इसे पसंदीदा में इंगित करता हूं। धन्यवाद।

  11.   अभी कहा

    खैर, यह अच्छा है, हालांकि कुछ समय होते हैं जब वे मारे नहीं जा सकते हैं…।

  12.   डकोय कहा

    पीकिल -9

    1.    डकोय कहा

      pkill -9 "प्रक्रिया का नाम"
      पिछली टिप्पणी में मैंने «» डाला लेकिन यह एक्सडी से बाहर नहीं आया

  13.   सबसे अच्छा कहा

    शुभ रात्रि, मेरे पास आपका फ़ीड पढ़ने का समय है और आज मैंने इस कमांड ps ax की कोशिश करने का निर्णय लिया है grep क्रोम | grep -v grep | awk '{प्रिंट $ 1}' | xargs मारते हैं और मुझे निम्नलिखित किल त्रुटि मिलती है: प्रक्रिया नहीं मिल सकती है "?" छोटे से अनुभव के साथ, मैंने कुछ संशोधन करने का फैसला किया और अंत में मुझे ps -A के साथ छोड़ दिया गया grep सी | grep -v grep | awk '{प्रिंट $ 1}' | xargs मार के बाद से ps- एक संक्षेप में सभी प्रक्रियाओं को दिखाने के लिए प्रयोग किया जाता है और दूसरा विसंगति यह था कि यह मुझे TTY «?» फेंक दिया था और यह मेरे लिए काम करता है कि मैं आपका बहुत बहुत धन्यवाद करता हूं, मुझे आपका ब्लॉग बहुत पसंद है

  14.   माइकल कहा

    धन्यवाद कॉम्प, आप उन समस्याओं की मात्रा की कल्पना नहीं कर सकते हैं जो आपने इस कमांड के साथ मेरे लिए हल की हैं।

    नमस्ते!

  15.   Emalug कहा

    धन्यवाद !!!!

  16.   आर्टुरो कहा

    बहुत बढ़िया पोस्ट। बस मैं क्या देख रहा था और यह कैसे करना है पता नहीं था, और स्पष्टीकरण बहुत अच्छा था।

    नमस्ते.