एंड्रॉयड

Linux में कमांड को मार डालो

लिनक्स कमांड लाइन ट्यूटोरियल के लिए शुरुआती 15 - मार आदेश

लिनक्स कमांड लाइन ट्यूटोरियल के लिए शुरुआती 15 - मार आदेश

विषयसूची:

Anonim

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

कई उपयोगिताओं हैं जो आपको सबसे अधिक इस्तेमाल होने वाले kill के साथ गलत प्रक्रियाओं को समाप्त करने की अनुमति देते हैं।

कमान kill

kill अधिकांश बॉर्न-व्युत्पन्न गोले जैसे बैश और ज़श में निर्मित शेल है। कमांड व्यवहार गोले और स्टैंडअलोन /bin/kill निष्पादन के बीच थोड़ा अलग है।

अपने सिस्टम पर kill वाले सभी स्थानों को प्रदर्शित करने के लिए type कमांड का उपयोग करें:

type -a kill

kill is a shell builtin kill is /bin/kill

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

kill कमांड का सिंटैक्स निम्न रूप लेता है:

kill…

kill कमांड निर्दिष्ट प्रक्रियाओं या प्रक्रिया समूहों को एक संकेत भेजता है, जिससे वे संकेत के अनुसार कार्य करते हैं। जब संकेत निर्दिष्ट नहीं किया जाता है, तो यह -15 (-TERM) में चूक करता है।

सबसे अधिक इस्तेमाल होने वाले सिग्नल हैं:

  • 1 ( HUP ) - एक प्रक्रिया पुनः लोड करें। 9 ( KILL ) - एक प्रक्रिया को मार डालो। 15 ( TERM ) - एक प्रक्रिया को रोकें।

सभी उपलब्ध संकेतों की सूची प्राप्त करने के लिए, -l विकल्प के साथ कमांड को आमंत्रित करें:

kill -l

संकेत तीन अलग-अलग तरीकों से निर्दिष्ट किए जा सकते हैं:

  1. संख्या (जैसे, -1 या -s 1 ) का उपयोग करना। "SIG" उपसर्ग का उपयोग करना (जैसे -SIGHUP या -s SIGHUP )। "SIG" उपसर्ग (जैसे, -HUP या -s HUP ) के साथ।

निम्नलिखित आदेश एक दूसरे के बराबर हैं:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

kill आदेश के लिए प्रदान की जाने वाली पीआईडी ​​निम्नलिखित में से एक हो सकती है:

  • यदि PID शून्य से अधिक है, तो सिग्नल को PID बराबर आईडी के साथ प्रक्रिया को भेजा जाता है। यदि PID शून्य के बराबर है, तो सिग्नल वर्तमान प्रक्रिया समूह में सभी प्रक्रियाओं को भेजा जाता है। दूसरे शब्दों में, संकेत को शेल के GID से संबंधित सभी प्रक्रियाओं में भेजा जाता है जो कि kill कमांड kill आमंत्रित करते kill । प्रक्रिया समूह आईडी (GID) देखने के लिए ps -efj कमांड का उपयोग करें। यदि PID -1 बराबर है, तो संकेत सभी प्रक्रियाओं के लिए एक ही UID के साथ भेजा जाता है जैसा कि उपयोगकर्ता कमांड को लागू करता है। यदि इनवॉइसिंग उपयोगकर्ता रूट है, तो सिग्नल को init और kill प्रक्रिया को छोड़कर सभी प्रक्रियाओं में भेजा जाता है। यदि PID -1 से कम है, तो सिग्नल को प्रक्रिया समूह में सभी प्रक्रियाओं के लिए भेजा जाता है, जो GID के साथ पूर्ण मान के बराबर है PID

नियमित उपयोगकर्ता अपनी स्वयं की प्रक्रियाओं को संकेत भेज सकते हैं, लेकिन वे नहीं जो अन्य उपयोगकर्ताओं के हैं, जबकि रूट उपयोगकर्ता अन्य उपयोगकर्ता की प्रक्रियाओं को संकेत भेज सकते हैं।

kill कमान का उपयोग कर प्रक्रियाओं को समाप्त करना

kill कमांड के साथ एक प्रक्रिया को समाप्त करने या मारने के kill , पहले आपको प्रक्रिया आईडी नंबर (पीआईडी) खोजने की आवश्यकता है। आप top , ps , pidof और pgrep जैसे विभिन्न कमांड का उपयोग करके ऐसा कर सकते हैं।

मान लें कि फ़ायरफ़ॉक्स ब्राउज़र अनुत्तरदायी हो गया है, और आपको फ़ायरफ़ॉक्स प्रक्रिया को मारने की आवश्यकता है। ब्राउज़र को खोजने के लिए PIDs pidof कमांड का उपयोग करते हैं:

pidof firefox

आदेश सभी फ़ायरफ़ॉक्स प्रक्रियाओं की आईडी प्रिंट करेगा:

6263 6199 6142 6076

एक बार जब आप प्रक्रिया संख्या जान लेते हैं, तो आप TERM सिग्नल भेजकर उन सभी को समाप्त कर सकते हैं:

kill -9 2551 2514 1963 1856 1771

पीआईडी ​​की खोज करने और फिर प्रक्रियाओं को समाप्त करने के बजाय, आप उपरोक्त आदेशों को एक में जोड़ सकते हैं:

kill -9 $(pidof firefox)

kill कमांड का उपयोग करके पुनः लोडिंग प्रक्रियाएँ

kill लिए एक अन्य सामान्य उपयोग का मामला HUP सिग्नल भेजना है, जो प्रक्रियाओं को अपनी सेटिंग्स को फिर से लोड करने के लिए कहता है।

उदाहरण के लिए, Nginx को फिर से लोड करने के लिए, आपको मास्टर प्रक्रिया को एक संकेत भेजने की आवश्यकता है। Nginx मास्टर प्रक्रिया की प्रक्रिया ID को nginx.pid फ़ाइल में पाया जा सकता है, जो आमतौर पर /var/run निर्देशिका में स्थित है।

मास्टर पीआईडी ​​खोजने के लिए cat कमांड का उपयोग करें:

cat /var/run/nginx.pid

30251

एक बार जब आप मास्टर PID टाइप करके Nginx सेटिंग्स पुनः लोड करते हैं:

sudo kill -1 30251

ऊपर दिए गए कमांड को sudo विशेषाधिकार के साथ रूट या उपयोगकर्ता के रूप में चलाया जाना चाहिए।

निष्कर्ष

kill कमांड का उपयोग प्रक्रियाओं को संकेत भेजने के लिए किया जाता है। सबसे अधिक उपयोग किया जाने वाला संकेत SIGKILL या -9 , जो दी गई प्रक्रियाओं को समाप्त करता है।

टर्मिनल को मार डालो