एक प्रक्रिया को मारना कभी-कभी इससे छुटकारा पाने का एकमात्र तरीका है। कठोर नाम के बावजूद, "हत्या" एक प्रक्रिया का अर्थ है "इसे छोड़ने के लिए मजबूर करना।" यहाँ लिनक्स या macOS कमांड लाइन से इसे कैसे किया जाता है।
एक प्रक्रिया क्या है?
आपके वेब ब्राउजर जैसे प्रोग्राम चलाना, आपके डेस्कटॉप वातावरण से जुड़े बैकग्राउंड प्रोसेस और लिनक्स सिस्टम सर्विसेज सभी प्रोसेस हैं।
आप प्रक्रियाओं को दो समूहों में विभाजित कर सकते हैं:
- फोरग्राउंड प्रोसेस वे हैं जो किसी उपयोगकर्ता द्वारा शुरू या लॉन्च किए गए हैं। वे एक टर्मिनल विंडो में हो सकते हैं, या वे एक चित्रमय अनुप्रयोग हो सकते हैं।
- पृष्ठभूमि की प्रक्रिया वे सभी प्रक्रियाएं जो स्वचालित रूप से शुरू की जाती हैं और उपयोगकर्ताओं के साथ कोई बातचीत नहीं करती हैं। वे उपयोगकर्ताओं से इनपुट की अपेक्षा नहीं रखते हैं और न ही वे उनके लिए परिणाम या आउटपुट प्रस्तुत करते हैं। पृष्ठभूमि प्रक्रियाएं सेवा और डेमन जैसी चीजें हैं।
यदि अग्रभूमि प्रक्रियाएं थिएटर कर्मचारियों और अभिनेताओं के सामने हैं, तो पृष्ठभूमि प्रक्रियाएं "पर्दे के पीछे" टीम हैं।
जब दुर्व्यवहार या खराबी की प्रक्रिया होती है, तो वे बहुत अधिक सीपीयू समय को रोक सकते हैं, अपनी रैम का उपभोग कर सकते हैं, या एक तंग कम्प्यूटेशनल लूप दर्ज कर सकते हैं और अनुत्तरदायी बन सकते हैं। ग्राफ़िकल एप्लिकेशन माउस क्लिक का जवाब देने से इनकार कर सकते हैं। टर्मिनल एप्लिकेशन आपको कभी भी कमांड प्रॉम्प्ट पर वापस नहीं ला सकते हैं।
मानवीय जवाब
"हत्या" एक प्रक्रिया का अर्थ है "प्रक्रिया को छोड़ने के लिए मजबूर करना।" यह आवश्यक हो सकता है यदि प्रक्रिया जवाब देने से इनकार कर रही है।
लिनक्स प्रदान करता है
मार
,
pkill
, तथा
सभी को मार डालो
आपको ऐसा करने की अनुमति देने की आज्ञा देता है। इन कमांड का उपयोग किसी भी प्रकार की प्रक्रिया, ग्राफिकल या कमांड लाइन, अग्रभूमि या पृष्ठभूमि के साथ किया जा सकता है।
मार कमान
काम में लाना
मार
, आपको उस प्रक्रिया की प्रक्रिया आईडी (पीआईडी) पता होनी चाहिए जिसे आप समाप्त करना चाहते हैं।
ps
एक प्रक्रिया के पीआईडी को खोजने के लिए कमांड का उपयोग किया जा सकता है।
रखने के लिए
ps
सभी प्रक्रियाओं के माध्यम से खोज का उपयोग करें
-है
(सभी प्रक्रियाएँ) विकल्प। के माध्यम से उत्पादन पाइपिंग
कम से
यह उचित है, इसमें काफी कुछ होने वाला है। प्रकार
ps
, एक स्थान,
-है
, एक स्थान,
|
(एक पाइप चरित्र), एक और स्थान और फिर टाइप करें
कम से
। आदेश पर अमल करने के लिए एंटर दबाए।
ps -e | कम से
यह आपको एक प्रक्रिया सूची देगा जो नीचे दिए गए स्क्रीनशॉट के समान दिखता है। आप आगे खोज सकते हैं
कम से
का उपयोग करते हुए
/
कुंजी और आप का उपयोग करके पिछड़े खोज सकते हैं
?
चाभी।
जिस प्रक्रिया में आप रुचि रखते हैं, उस पर घर करने के लिए, आउटपुट से पाइप करें
ps
के माध्यम से
पकड़
और नाम या प्रक्रिया के नाम का हिस्सा निर्दिष्ट करें।
ps -e | grep शूटर
एक बार जब आप प्रक्रिया को समाप्त करना चाहते हैं, तो आप इसे पास कर देंगे
मार
एक पैरामीटर के रूप में कमान। समाप्त करना
शटर
पिछली कमांड द्वारा पहचानी गई प्रक्रिया, इस कमांड का उपयोग करें:
2099 को मार डालो
मार
कमांड एक साइलेंट किलर है- यह सफल होने पर आपको कोई प्रतिक्रिया नहीं देता है।
Pkill कमांड
pkill
कमांड आपको एक प्रक्रिया या प्रक्रियाओं को मारने की अनुमति देता है - नाम से। आपको पीआईडी द्वारा प्रक्रिया की पहचान करने की आवश्यकता नहीं है। काम में लाना
pkill
आप एक खोज शब्द प्रदान करते हैं
pkill
चल रही प्रक्रियाओं की सूची के खिलाफ जांच करने के लिए उपयोग करता है। मिलान प्रक्रियाओं को समाप्त कर दिया जाता है। इसलिए आपको सकारात्मक होने की आवश्यकता है कि आपको वह खोज शब्द सही ढंग से लिखा गया है।
सुरक्षा जाल के रूप में, आप उपयोग कर सकते हैं
pgrep
आदेश
इससे पहले
आप का उपयोग करें
pkill
आदेश।
pgrep
आदेश भी एक खोज शब्द को स्वीकार करता है। यह खोज शब्द से मेल खाने वाली प्रत्येक प्रक्रिया के PID को सूचीबद्ध करेगा। यह सुरक्षित है क्योंकि
pgrep
प्रक्रियाओं को कोई किल सिग्नल जारी नहीं करेगा, और यदि आप खोज शब्द को गलत करते हैं तो आप गलती से किसी अन्य प्रक्रिया को नहीं मारेंगे। आप यह सुनिश्चित कर सकते हैं कि आपके पास पास करने से पहले खोज शब्द सही ढंग से सोचा गया हो
pkill
। दोनों
pkill
तथा
pgrep
उसी तरह से खोज शब्द का इलाज करें। उनका इलाज भी ऐसा ही है
एक ही आदमी पृष्ठ साझा करें
.
मान लें कि इसके नाम में "सबक" के साथ एक प्रक्रिया है। हम उपयोग करेंगे
ps -u dave | ग्रेप
पर्दे के पीछे एक झलक पाने की आज्ञा। आप देख सकते हैं कि "सबक" उस प्रक्रिया और उस प्रक्रिया से अकेले मेल खाएगा। यह सिर्फ इतना था कि आप प्रक्रिया का पूरा नाम देख सकते हैं।
ps -u dave | grep subq
हमारे उपयोगकर्ता मान लेते हैं
नहीं है
हो गया; वे सभी जानते हैं कि प्रक्रिया का नाम सब-सबक "" है। वे उपयोग करते हैं
pgrep
यह जांचने के लिए कि खोज शब्द में केवल एक मैच है। वे तब उस खोज शब्द का उपयोग करते हैं
pkill
.
pgrep सब्क
pkill सब्क
आप उपयोग कर सकते हैं
pkill
एक साथ कई प्रक्रियाओं को मारने के लिए। यहाँ उपयोगकर्ता चलाता है
pgrep
यह जाँचने के लिए कि Chrome ने कितनी प्रक्रियाएँ शुरू की हैं। वे उपयोग करते हैं
pkill
उन सभी को मारने के लिए। वे फिर से जाँच करते हैं
pgrep
कि उन्हें हटा दिया गया है।
pgrep क्रोम
pkill chrome
pgrep क्रोम
यदि समान नाम वाली कई प्रक्रियाएं चल रही हैं, लेकिन आप उन सभी को नहीं मारना चाहते हैं, तो आप उपयोग कर सकते हैं
pgrep
उसके साथ
-f
(कमांड लाइन) विकल्प की पहचान करने के लिए कि कौन सी प्रक्रिया है। एक सरल उदाहरण दो होगा
पिंग
प्रक्रियाओं। आप उनमें से एक को मारना चाहते हैं लेकिन दूसरे को नहीं। आप उनके बीच भेद करने के लिए उनकी कमांड लाइन का उपयोग कर सकते हैं। कमांड लाइन पैरामीटर को लपेटने के लिए उद्धरण चिह्नों के उपयोग पर ध्यान दें।
pgrep -f "पिंग 192.168.4.22"
pkill -f "पिंग 192.168.4.22"
हत्यारी कमान
चेतावनी
: सोलारिस और ओपनइंडियाना ऑपरेटिंग सिस्टम में
सभी को मार डालो
आज्ञा होगी
उन सभी प्रक्रियाओं को मार डालो जो आपके हैं
। यदि आप रूट हैं या यदि आपने जारी किए हैं
सूदो की हत्या
आप अपने कंप्यूटर को रिबूट करेंगे! इस लेख के लिए शोध के दौरान, OpenIndiana Hipster 2018.10 के नवीनतम संस्करण के साथ इस व्यवहार की पुष्टि की गई थी।
सभी को मार डालो
आदेश
एक समान तरीके से काम करता है
को
pkill
कमांड लेकिन एक विशिष्ट अंतर के साथ। आदेश में एक खोज शब्द पारित करने के बजाय आपको सटीक प्रक्रिया नाम प्रदान करना होगा।
आप प्रक्रिया नाम के लिए आंशिक मिलान प्रदान नहीं कर सकते; आपको पूरी प्रक्रिया नाम प्रदान करनी चाहिए, जैसा कि दिखाया गया है:
हत्या बंद
मार डालने वाला शटर
-Y
(से कम) विकल्प आपको उन प्रक्रियाओं को मारने की अनुमति देता है जो इसके लिए चल रही हैं
कम से
एक निर्दिष्ट अवधि से। इन इकाइयों में से एक के बाद की अवधि दी गई है:
- s (सेकंड)
- मी (मिनट)
- घंटे (घंटे)
- डी (दिन)
- w (सप्ताह)
- एम (महीने, नोट, पूंजी "एम")
- y (वर्ष)
नामक एक प्रक्रिया को मारने के लिए
मां
जिसे अभी लॉन्च किया गया है और इसके किसी भी पुराने उदाहरण को छोड़ दें
मां
चल रहा है, आप निम्न मापदंडों का उपयोग कर सकते हैं
सभी को मार डालो
, अगर आपने दो मिनट के भीतर प्रतिक्रिया दी:
मुझे या मुझे कम
-इस
(पुराने से अधिक) विकल्प आपको उन प्रक्रियाओं को मारने की अनुमति देता है जो एक निर्दिष्ट अवधि से अधिक समय तक चल रही हैं। यह आज्ञा सभी को मार डालेगी
ssh
कनेक्शन जो एक दिन से अधिक समय से चल रहे हैं:
Killall -o 1d sshd
बहुत ज्यादा खुश मत होना
ये कमांड आपको सटीकता और सुरक्षा के साथ गलत प्रक्रियाओं को सही ढंग से पहचानने और समाप्त करने की अनुमति देंगे।
हमेशा सतर्क रहें। पहले, सुनिश्चित करें कि आप जिस प्रक्रिया को मारने जा रहे हैं वह वास्तव में आप चाहते हैं। दूसरा, दोहरी जांच - सावधान रहें और सुनिश्चित करें कि लक्षित प्रक्रिया वह है जिसे आप समाप्त करना चाहते हैं। संतुष्ट होने के बाद प्रक्रिया को समाप्त करने के साथ आगे बढ़ें।