मैं सभी प्रक्रियाओं है कि मैं द्वारा प्राप्त मारने के लिए चाहते हैं:किसी दिए गए आंशिक नाम के साथ सभी प्रक्रियाओं को कैसे मारें?
ps aux | grep my_pattern
यह कैसे करना है?
यह काम नहीं करता:
pkill my_pattern
मैं सभी प्रक्रियाओं है कि मैं द्वारा प्राप्त मारने के लिए चाहते हैं:किसी दिए गए आंशिक नाम के साथ सभी प्रक्रियाओं को कैसे मारें?
ps aux | grep my_pattern
यह कैसे करना है?
यह काम नहीं करता:
pkill my_pattern
के किसी भी हिस्से के लिए नमूने का मिलान आपके द्वारा चयन प्रक्रियाओं का उपयोग
में और अधिक लचीलापन की जरूरत हैfor KILLPID in `ps ax | grep 'my_pattern' | awk ' { print $1;}'`; do
kill -9 $KILLPID;
done
आप grep -e आदि का उपयोग कर सकते हैं
-1 आपको लूप की आवश्यकता नहीं है, आप केवल' kill -9 \ 'ps ax | awk '[m] y_pattern {प्रिंट $ 1}' \ '' (रीफैक्टरिंग भी नोट करें; @ सिंथेसाइज़रपटल के उत्तर पर भी मेरी टिप्पणी देखें)। – tripleee
@ ट्रिपली आपके डाउनवोट के साथ कोई समस्या नहीं है, लेकिन आप ** ** महसूस करते हैं कि ओक्यू * "मैं उन सभी प्रक्रियाओं को मारना चाहता हूं जो मुझे मिलती हैं: ps aux | grep my_pattern" *, जिसे मैंने कर्तव्यपूर्वक स्वीकार किया। –
किल एक ही समय में सभी प्रक्रियाओं को मार देगा, आपको इसके लिए लूप की आवश्यकता नहीं है। यदि 'ps' तीन प्रक्रियाओं 123, 234, और 345 देता है, तो आप' 123 234 345 'को मार सकते हैं जैसे कि आप' rm' या 'cat' एकाधिक फ़ाइल तर्क कर सकते हैं। – tripleee
को मार डालो सभी प्रक्रियाओं स्ट्रिंग "myProcessName" मिलान:
एक लाइनर:
ps -ef | grep myProcessName | grep -v grep | awk '{print $2}' | xargs kill -9
हटा देगा यदि नाम से मेल खाने वाली कोई प्रक्रिया नहीं मिलती है तो यह एक त्रुटि फेंक देगा। आप 'ps -ef | का उपयोग करना चाह सकते हैं grep myProcessName | grep -v grep | अजीब '{प्रिंट $ 2}' | xargs -r kill -9' को xargs कमांड निष्पादित नहीं करते हैं यदि कोई तर्क नहीं दिया जाता है। – Epigene
बस थोड़ा सा संशोधन, शायद प्रक्रिया का नाम उद्धृत करना बेहतर है: 'ps -ef | grep 'myProcessName' | grep -v grep | अजीब '{प्रिंट $ 2}' | xargs -r kill -9' उद्धरण के बिना, पहली बार मेरी पृष्ठभूमि प्रक्रियाओं में से केवल एक को मार दिया गया था। इसे फिर से चलाकर बाकी को मार डाला। –
आप इस प्रक्रिया
ps aux | grep -c myProcessName
सूची निम्न आदेश का उपयोग कर सकते हैं
यदि आपको टी की गिनती की जांच करने की आवश्यकता है टोपी प्रक्रिया तब चलाने
ps aux | grep -c myProcessName |grep -v grep
जिसके बाद आप का उपयोग कर
kill -9 $(ps aux | grep -e myProcessName | awk '{ print $2 }')
आप प्रक्रिया ps aux की सूची के लिए निम्न आदेश का उपयोग कर सकते हैं। grep -c myProcessName यदि आपको उस प्रक्रिया की गिनती की जांच करने की आवश्यकता है तो ps aux चलाएं। ग्रेप -c myProcessName | ग्रेप -v ग्रेप जिसके बाद आप मार -9 $ का उपयोग कर प्रक्रिया को मार सकता है (ps aux | ग्रेप -e myProcessName | awk '{$ 2 प्रिंट}') –
बुरा ध्वनि प्रक्रिया को मार सकता है?
pkill `pidof myprocess`
उदाहरण:
# kill all java processes
pkill `pidof java`
आप pkill -f PATTERN
थोड़ा बहुत खतरनाक न्यायाधीश, मैं ezkill एक bash स्क्रिप्ट है कि आप जो उन है कि पैटर्न आप को मारने के लिए चाहता हूँ से मेल के बीच प्रक्रियाओं का चयन करने का संकेत लिखा था।
आप के लिए निम्न आदेश का उपयोग कर सकते हैं:
ps -ef | grep -i myprocess | awk {'print $2'} | xargs kill -9
या
ps -aux | grep -i myprocess | awk {'print $2'} | xargs kill -9
यह मेरे लिए काम करता है।
StackOverflow करने के लिए आपका स्वागत है। कृपया अपनी कोड लाइनों के लिए 4-स्पेस या टैब इंडेंटेशन का उपयोग करें ताकि उन्हें कोड ब्लॉक के रूप में स्वरूपित किया जा सके। सादर – YakovL
आप
kill -9 $(ps aux | grep 'process' | grep -v 'grep' | awk '{print $2}')
के लिए निम्न आदेश का उपयोग इसके अलावा, आप killall -r my_pattern
उपयोग कर सकते हैं कर सकते हैं। -r
एक विस्तारित नियमित अभिव्यक्ति के रूप में प्रक्रिया नाम पैटर्न व्याख्या करें।
killall -r my_pattern
आप, प्रक्रिया आईडी खोजने का सिरदर्द ले नाम से प्रक्रिया को मारने के लिए regexp का उपयोग नहीं करना चाहते हैं। उदाहरण के लिए, कोड के बाद क्रोम को मारने के लिए चाल चल जाएगी।
killall -r --regexp chrome
'बस नाम की सबस्ट्रिंग my_pattern' है, या यह किसी भी regex विशेष वर्ण करता है? –