लिनक्स: तर्कों के आधार पर मार प्रक्रिया


54

मैं इसकी कमांड लाइन तर्कों के आधार पर एक प्रक्रिया को कैसे मार सकता हूं? killall, pgrepऔर pkillप्रक्रिया नाम के आधार पर केवल काम करने लगते हैं।

मुझे इसकी आवश्यकता है कि जावा वर्चुअल मशीनों के अंदर चल रहे कई अनुप्रयोगों में अंतर करने में सक्षम हो, जहां इन javaसभी के लिए प्रक्रिया का नाम है और वास्तविक आवेदन नाम कमांड लाइन के तर्कों को देखकर पाया जा सकता है।

यह मैन्युअल रूप से किया जा सकता है ps aux | grep myapp.jarऔर फिर मैन्युअल रूप से आउटपुट से पिड को मार सकता है , लेकिन मैं स्वचालित रूप से कुछ समान करने के लिए एक कमांड चाहता हूं।

जवाबों:


69

pgrep/ pkillएक -fझंडा ले लो । से manपेज:

-f    The pattern is normally only matched against the process name.
      When -f is set, the full command line is used.

उदाहरण के लिए:

$ sleep 30& sleep 60&
[1] 8007
[2] 8008

$ pkill -f 'sleep 30'
[1]  - terminated  sleep 30

$ pgrep sleep
8008

+1, लेकिन मेरा बैश 4.1.5 एम्परसेंड के बाद कोलन के लिए काम नहीं करता है (जैसा कि उदाहरण की पहली पंक्ति में है) ... bash: syntax error near unexpected token ';'... यह एक केस स्टेटमेंट में काम करता है जब एम्परसैंड द्वारा पीछा किया जाता है ;;... हो सकता है आप
पीटर.ओ

@ jw013 मैं वास्तव में उपयोग कर रहा था zsh, जो मैंने उपयोग किए गए वाक्यविन्यास का समर्थन करता है। इसे बाहर हालांकि दोनों में काम करता है छोड़ रहा है, तो मैं इसे हटा दिया
माइकल Mrozek

@MichaelMrozek ठीक nvm तो :) मुझे आश्चर्य है कि अगर unix.SE के पास zshकहीं और से अधिक उपयोगकर्ताओं का अनुपात है - तो मैं केवल zshयहां उपयोगकर्ता ढूंढता हूं ।
jw013

4

आप htopवर्तमान में चल रही सभी प्रक्रियाओं को उनकी कमांड लाइन तर्कों के साथ देखने और एक चयनित प्रक्रिया को मारने के लिए उपयोग कर सकते हैं ।


4

argumentएक नियमित अभिव्यक्ति के साथ नीचे बदलें जो एक प्रक्रिया की पूरी कमांड लाइन होनी चाहिए:

kill `ps -eo pid,args --cols=10000 | awk '/argument/ && $1 != PROCINFO["pid"] { print $1 }'`

0

यदि आपके पास pkill या जो कुछ भी नहीं है, तो बस proc / [1-9] * / cmdline का उपयोग करें

grep -a myapp.jar /proc/[1-9]*/cmdline|tr '\0' ' '|grep -v grep|awk -F/ '{print $3}'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.