बैश से एक को छोड़कर सभी अजगर प्रक्रियाओं को कैसे मारें


11

मैं एक अजगर स्क्रिप्ट को छोड़कर सभी अजगर प्रक्रियाओं को कैसे मार सकता हूं। (मुझे इसका नाम पता है, लेकिन इसके पीड को कभी-कभी बदला जा सकता है)।

मुझे pkill -f "python"अजगर की विशिष्ट स्क्रिप्ट को छोड़कर इस तरह की आवश्यकता है ।

कृपया सलाह दें।

जवाबों:


13

ps aux |grep python |grep -v 'pattern_of_process_you_dont_want_to_kill' |awk '{print $2}' |xargs kill

अपडेट: टिप्पणियों में अनुरोध के अनुसार चरण-दर-चरण स्पष्टीकरण

  • ps aux |grep python- उन सभी प्रक्रियाओं को दिखाएं जो मिलान pythonपैटर्न हैं
  • grep -v 'pattern_of_process_you_dont_want_to_kill' - उस प्रक्रिया को बाहर करें जिसे आप मारना नहीं चाहते हैं
  • awk '{print $2}' - आउटपुट का दूसरा क्षेत्र दिखाएं, यह पीआईडी ​​है।
  • xargs kill- killप्रत्येक इनपुट arg (PID) पर कमांड को लागू करें ।

यदि आप xargsकमांड से परिचित नहीं हैं , तो मैं आपको सलाह दूंगा कि अगर आप इसे तुरंत नहीं समझते हैं तो चिंता न करें। यह पहली बार काफी मुश्किल दिखाई दे सकता है। मैंने इसके उपयोग का बहुत सरल उदाहरण पोस्ट किया है, आप अधिक के लिए Google कर सकते हैं।


1
महान, लेकिन क्या आप यह बता सकते हैं कि यह कैसे काम करता है, उदाहरण के लिए क्या है '{प्रिंट $ 2}' और xargs मारना?
user370717

awk '{print $2}' - psआउटपुट का दूसरा क्षेत्र प्रिंट करता है, वर्तमान मामले में यह है PID। प्रत्येक xargsपर killकमांड लागू होता हैPID
user1700494

1
यह कहना कि एक टिप्पणी में अच्छा है, लेकिन मैं आपके उत्तर के लिए वोट करूँगा, उसके बाद अच्छी तरह से स्वरूपित टिप्पणी आपके उत्तर में एकीकृत हो गई थी।
चूजों
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.