लिनक्स का उपयोग कर प्रक्रियाओं को कैसे मारें

अधिकांश समय आप प्रोग्राम को अपने माध्यम से समाप्त करना चाहते हैं, या, यदि यह उचित मेनू विकल्प का उपयोग करके या कोने में क्रॉस का उपयोग करके ग्राफिकल एप्लिकेशन है।

हर बार एक कार्यक्रम लटका होगा, इस मामले में आपको इसे मारने के लिए एक विधि की आवश्यकता होगी। आप उस प्रोग्राम को भी मारना चाहेंगे जो पृष्ठभूमि में चल रहा है जिसे अब चलाने की आवश्यकता नहीं है।

यह गाइड आपके सिस्टम पर चल रहे एक ही एप्लिकेशन के सभी संस्करणों को मारने के लिए एक विधि प्रदान करता है।

हत्यारा कमांड का उपयोग कैसे करें

Killall कमांड सभी प्रक्रियाओं को नाम से मारता है। इसका मतलब है कि यदि आपके पास एक ही प्रोग्राम के तीन संस्करण हैं, तो killall कमांड तीनों को मार देगा।

उदाहरण के लिए, एक छोटा प्रोग्राम जैसे छवि दर्शक खोलें। अब एक ही छवि दर्शक की एक और प्रतिलिपि खोलें। मेरे उदाहरण के लिए मैंने Xviewer चुना है जो जीनोम की आंख का एक क्लोन है।

अब टर्मिनल खोलें और निम्न कमांड टाइप करें:

सबको मार दो

उदाहरण के लिए Xviewer के सभी उदाहरणों को मारने के लिए निम्नलिखित टाइप करें:

killall xviewer

आपके द्वारा चुने गए कार्यक्रम के दोनों उदाहरण अब बंद हो जाएंगे।

सटीक प्रक्रिया को मार डालो

हत्यारा अजीब परिणाम पैदा कर सकता है। खैर यहाँ एक कारण है। यदि आपके पास कमांड नाम है जो 15 वर्णों से अधिक लंबा है तो killall कमांड केवल पहले 15 वर्णों पर काम करेगा। यदि आपके पास दो प्रोग्राम हैं जो पहले 15 अक्षर साझा करते हैं तो दोनों प्रोग्राम रद्द कर दिए जाएंगे, भले ही आप केवल एक को मारना चाहते हों।

इसके आस-पास पहुंचने के लिए आप निम्न स्विच निर्दिष्ट कर सकते हैं जो केवल सटीक नाम से मेल खाने वाली फाइलों को मार देगा।

killall -e

कार्यक्रमों को मारते समय केस अनदेखा करें

यह सुनिश्चित करने के लिए कि killall कमांड प्रोग्राम नाम के मामले को अनदेखा करता है जो आप प्रदान करते हैं निम्न आदेश का उपयोग करें:

killall -I
killall --ignore-case

उसी समूह में सभी कार्यक्रमों को मार डालो

जब आप निम्न आदेश जैसे कमांड चलाते हैं तो यह दो प्रक्रियाएं बनाएगा:

पीएस-एफआई | कम से

एक आदेश ps -ef भाग के लिए है जो आपके सिस्टम पर चल रही सभी प्रक्रियाओं को सूचीबद्ध करता है और आउटपुट कम कमांड पर पाइप किया जाता है

दोनों कार्यक्रम एक ही समूह से संबंधित हैं जो बाश है।

एक बार में दोनों प्रोग्रामों को मारने के लिए आप निम्न आदेश चला सकते हैं:

killall -g

उदाहरण के लिए बैश खोल में चल रहे सभी आदेशों को मारने के लिए निम्न चलाएं:

killall -g bash

संयोग से सभी चल रहे समूहों को सूचीबद्ध करने के लिए निम्न आदेश चलाएं:

पीएस-जी

कार्यक्रमों को मारने से पहले पुष्टि प्राप्त करें

जाहिर है, हत्यारा आदेश काफी शक्तिशाली आदेश है और आप गलती से गलत प्रक्रियाओं को मारना नहीं चाहते हैं।

निम्नलिखित स्विच का उपयोग करके आपसे पूछा जाएगा कि क्या आप प्रत्येक प्रक्रिया को मारने से पहले सुनिश्चित हैं या नहीं।

killall -i

समय की एक निश्चित राशि के लिए चल रही प्रक्रियाओं को मार दें

कल्पना कीजिए कि आप एक कार्यक्रम चला रहे हैं और यह उम्मीद से बहुत अधिक समय ले रहा है।

आप कमांड को निम्न तरीके से मार सकते हैं:

killall -o एच 4

उपरोक्त आदेश में एच घंटे के लिए खड़ा है।

आप निम्न में से कोई एक भी निर्दिष्ट कर सकते हैं:

वैकल्पिक रूप से, यदि आप उन आदेशों को मारना चाहते हैं जो केवल चलना शुरू कर चुके हैं तो आप निम्न स्विच का उपयोग कर सकते हैं:

killall -y एच 4

इस बार killall कमांड 4 घंटे से कम समय के लिए चल रहे सभी कार्यक्रमों को मार देगा।

मुझे बताओ जब कोई प्रक्रिया मारे नहीं जाती है

डिफ़ॉल्ट रूप से यदि आप किसी प्रोग्राम को चलाने और मारने की कोशिश नहीं करते हैं तो आपको निम्न त्रुटि प्राप्त होगी:

प्रोग्राम नाम: कोई प्रक्रिया नहीं मिली

यदि आप नहीं जानना चाहते हैं कि प्रक्रिया नहीं मिली है तो निम्न आदेश का उपयोग करें:

killall -q

नियमित अभिव्यक्तियों का उपयोग करना

किसी प्रोग्राम या कमांड का नाम निर्दिष्ट करने के बजाय आप एक नियमित अभिव्यक्ति निर्दिष्ट कर सकते हैं ताकि नियमित अभिव्यक्ति से मेल खाने वाली सभी प्रक्रियाओं को killall कमांड द्वारा बंद कर दिया जा सके।

नियमित अभिव्यक्ति का उपयोग करने के लिए निम्न आदेश का उपयोग करें:

killall -r

एक निर्दिष्ट उपयोगकर्ता के लिए कार्यक्रमों को मार डालो

यदि आप एक विशिष्ट उपयोगकर्ता द्वारा चलाए जा रहे किसी प्रोग्राम को मारना चाहते हैं तो आप निम्न आदेश निर्दिष्ट कर सकते हैं:

killall -u

यदि आप किसी विशेष उपयोगकर्ता के लिए सभी प्रक्रियाओं को मारना चाहते हैं तो आप प्रोग्राम का नाम छोड़ सकते हैं।

खत्म करने के लिए हत्या के लिए प्रतीक्षा करें

डिफ़ॉल्ट रूप से killall सीधे इसे टर्मिनल पर वापस लौटाएगा जब आप इसे चलाते हैं लेकिन आप हत्यारे को तब तक इंतजार कर सकते हैं जब तक कि टर्मिनल विंडो पर वापस आने से पहले निर्दिष्ट सभी प्रक्रियाओं को बंद कर दिया गया हो।

ऐसा करने के लिए निम्न आदेश चलाएं:

killall -w

यदि कार्यक्रम कभी नहीं मरता है तो हत्यारा भी जारी रहेगा।

सिग्नल सिग्नल सिग्नल

डिफ़ॉल्ट रूप से killall कमांड प्रोग्राम को प्रोग्राम करने के लिए सिग्टरएम सिग्नल भेजता है और कार्यक्रमों को मारने के लिए यह सबसे साफ तरीका है।

हालांकि अन्य सिग्नल हैं जिन्हें आप killall कमांड का उपयोग करके भेज सकते हैं और आप निम्न आदेश का उपयोग करके उन्हें सूचीबद्ध कर सकते हैं:

killall -l

लौटाई गई सूची इस तरह कुछ होगी:

वह सूची बहुत लंबी है। इन संकेतों का अर्थ निम्न आदेश को चलाने के बारे में पढ़ने के लिए:

आदमी 7 संकेत

आम तौर पर आपको डिफ़ॉल्ट SIGTERM विकल्प का उपयोग करना चाहिए, लेकिन यदि प्रोग्राम मरने से इंकार कर देता है तो आप सिगकिल का उपयोग कर सकते हैं जो प्रोग्राम को एक अपरिचित तरीके से यद्यपि बंद करने के लिए मजबूर करता है।

एक कार्यक्रम को मारने के अन्य तरीके

लिंक किए गए मार्गदर्शिका में हाइलाइट किए गए लिनक्स एप्लिकेशन को मारने के 5 अन्य तरीके हैं।

हालांकि, यहां आपको लिंक पर क्लिक करने का प्रयास सहेजने के लिए एक अनुभाग है जो दिखा रहा है कि ये आदेश क्या हैं, आप हत्यारों पर उन आदेशों का उपयोग क्यों कर सकते हैं।

पहला एक हत्या आदेश है। जैसा कि आपने देखा है कि हत्यारा आदेश उसी कार्यक्रम के सभी संस्करणों को मारने में बहुत अच्छा है। हत्या कमांड को एक समय में एक प्रक्रिया को मारने के लिए डिज़ाइन किया गया है और इसलिए अधिक लक्षित है।

हत्या आदेश चलाने के लिए आपको उस प्रक्रिया की प्रक्रिया आईडी जाननी होगी जिसे आप मारना चाहते हैं। इसके लिए आप ps कमांड का उपयोग कर सकते हैं।

उदाहरण के लिए फ़ायरफ़ॉक्स के चल रहे संस्करण को खोजने के लिए आप निम्न आदेश चला सकते हैं:

पीएस-एफआई | grep फ़ायरफ़ॉक्स

आप अंत में कमांड / usr / lib / फ़ायरफ़ॉक्स / फ़ायरफ़ॉक्स के साथ डेटा की एक पंक्ति देखेंगे। लाइन की शुरुआत में आप अपना यूज़र आईडी देखेंगे और उपयोगकर्ता आईडी के बाद नंबर प्रोसेस आईडी होगा।

प्रक्रिया आईडी का उपयोग करके आप निम्न आदेश चलाकर फ़ायरफ़ॉक्स को मार सकते हैं:

kill -9

एक प्रोग्राम को मारने का एक और तरीका xkill कमांड का उपयोग कर है। यह आम तौर पर गलत व्यवहार ग्राफिकल अनुप्रयोगों को मारने के लिए प्रयोग किया जाता है।

फ़ायरफ़ॉक्स जैसे प्रोग्राम को मारने के लिए टर्मिनल खोलें और निम्न आदेश चलाएं:

xkill

कर्सर अब एक बड़े सफेद क्रॉस में बदल जाएगा। कर्सर को उस विंडो पर होवर करें जिसे आप मारना चाहते हैं और बाएं माउस बटन के साथ क्लिक करें। कार्यक्रम तुरंत बाहर निकल जाएगा।

एक प्रक्रिया को मारने का एक और तरीका लिनक्स टॉप कमांड का उपयोग कर है। शीर्ष आदेश आपके सिस्टम पर सभी चल रही प्रक्रियाओं को सूचीबद्ध करता है।

प्रक्रिया को मारने के लिए आपको बस इतना करना है कि "के" कुंजी दबाएं और उस एप्लिकेशन की प्रक्रिया आईडी दर्ज करें जिसे आप मारना चाहते हैं।

इससे पहले इस खंड में हत्या आदेश और इसे आपको ps कमांड का उपयोग करके प्रक्रिया ढूंढने की आवश्यकता थी और फिर हत्या आदेश का उपयोग कर प्रक्रिया को मार डालना आवश्यक था।

यह किसी भी माध्यम से सबसे आसान विकल्प नहीं है।

एक बात के लिए, पीएस कमांड उस जानकारी का भार देता है जिसकी आपको आवश्यकता नहीं है। आप चाहते थे कि प्रक्रिया आईडी थी। आप निम्न आदेश चलाकर प्रक्रिया आईडी को अधिक आसानी से प्राप्त कर सकते हैं:

pgrep फ़ायरफ़ॉक्स

उपरोक्त आदेश का परिणाम केवल फ़ायरफ़ॉक्स की प्रक्रिया आईडी है। अब आप हत्या आदेश को निम्नानुसार चला सकते हैं:

मारो

( को pgrep द्वारा लौटाई गई वास्तविक प्रक्रिया आईडी के साथ बदलें)।

यह वास्तव में आसान है, हालांकि, प्रोग्राम नाम को पीकेल को निम्नानुसार आपूर्ति करने के लिए:

पिक्सेल फ़ायरफ़ॉक्स

अंत में, आप एक ग्राफिकल टूल का उपयोग कर सकते हैं जैसे उबंटू के साथ आपूर्ति की गई जिसे "सिस्टम मॉनीटर" कहा जाता है। "सिस्टम मॉनिटर" चलाने के लिए सुपर कुंजी (अधिकांश कंप्यूटरों पर विंडोज कुंजी) दबाएं और खोज बार में "sysmon" टाइप करें। जब सिस्टम मॉनिटर आइकन प्रकट होता है, तो उस पर क्लिक करें।

सिस्टम मॉनिटर प्रक्रियाओं की एक सूची दिखाता है। एक साफ तरीके से एक प्रोग्राम को समाप्त करने के लिए इसे चुनें और स्क्रीन के नीचे अंत कुंजी दबाएं (या CTRL और E दबाएं)। यदि यह काम करने में विफल रहता है या तो सही क्लिक करें और "मार डालें" चुनें या उस प्रक्रिया पर CTRL और K दबाएं जिसे आप मारना चाहते हैं।