मैं grep का उपयोग किए बिना नाम से प्रक्रिया कैसे खोजूं?


62

एक प्रक्रिया आप उपयोग कर सकते हैं के लिए खोज करने के लिए आदेश में psसाथ grep

उदाहरण के लिए फ़ायरफ़ॉक्स की खोज करना

ps aux | grep firefox

बिना उपयोग के समान उत्तर कैसे प्राप्त करें grep?


1
मैं उत्सुक हूं कि आप ऐसा क्यों करना चाहेंगे, यह देखते हुए कि ps/grepसमाधान इतनी अच्छी तरह से काम करता है?
न्यूरॉनैट

ओपी सिर्फ एक छोटी कमांड चाहता है जो मुझे लगता है। अगर कोई ऐसी चीज ps -n <process name>होगी जो उसकी जरूरत का जवाब देगी। ps -n firefoxसे थोड़ा छोटा है ps | grep firefox। उपयोगकर्ता आईडी के लिए psपहले से ही फ़िल्टर pidया प्रक्रियाएँ कर सकते हैं , इसलिए प्रक्रिया नाम पर फ़िल्टर करना एक उचित प्रश्न है।
जोकेम शुल्नेक्लोपर

जवाबों:


71

pgrepआदेश है, और उसके भाई pkill, इस उद्देश्य के लिए ठीक मौजूद है:

  • pgrep firefox उन सभी प्रक्रियाओं को सूचीबद्ध करेगा जिनकी कमांड मेल खाती है firefox
  • pgrep -f firefox उन सभी प्रक्रियाओं को सूचीबद्ध करेगा जिनकी पूरी कमांड लाइनें मेल खाती हैं firefox
  • pgrep -x firefox उन सभी प्रक्रियाओं को सूचीबद्ध करेगा जिनकी कमांड बिल्कुल मेल खाती है firefox
  • ... और इसी तरह।

और स्वाभाविक रूप से, pgrepखुद को मैच से बाहर कर देगा, इसलिए इससे grepजुड़े किसी भी अनुष्ठान की ps | grepआवश्यकता नहीं है।


इसके लिए टूल का दूसरा सेट कमांड pidofऔर killallकमांड हैं। ये उतने लचीले नहीं हैं जितने कि pgrepऔर pkill

  • pidof firefox उन प्रक्रियाओं को सूचीबद्ध करेगा जिनकी कमांड है firefox

24
ps -fC process-name

उदाहरण:

ps -fC firefox

से man ps

  -C cmdlist      Select by command name.
                       This selects the processes whose executable name is
                       given in cmdlist.


 -f              Do full-format listing. This option can be combined
                       with many other UNIX-style options to add additional
                       columns. It also causes the command arguments to be
                       printed. When used with -L, the NLWP (number of
                       threads) and LWP (thread ID) columns will be added. See
                       the c option, the format keyword args, and the format
                       keyword comm.

यह सबसे अच्छा जवाब है लेकिन दुर्भाग्य से OSX पर काम नहीं करता है। बीएसडी ps -Cध्वज पूरी तरह से अलग तरह से व्यवहार करता है - "सीपीयू प्रतिशत की गणना के तरीके को बदलें"
मास्टबलास्टा

2

topजब आप अपरकेस को मारते हैं तो आपको स्ट्रिंग की खोज करने की अनुमति देता है L; प्रक्रिया को हाइलाइट किया जाएगा, और प्रक्रियाओं की सूची के माध्यम से स्क्रॉल करने के लिए ऊपर और नीचे तीर कुंजियों का उपयोग करें। इसी तरह, htopकमांड आपको हिट होने पर एक विशेष प्रक्रिया को उजागर करने की अनुमति देता है /। और \नाम में एक विशेष स्ट्रिंग के साथ सभी प्रक्रियाओं को फ़िल्टर करेगा।

जो लोग जागना पसंद करते हैं, उनके लिए यहाँ एक अजीब oneliner है ps -eF | awk '/process-name/ {print $11}' :। ps -eFप्रक्रिया के साथ नाम हमेशा 11 वें कॉलम में होता है। वैकल्पिक रूप से यदि आप करते हैं तो ps -eF | awk '{print $11}' | sortआपको वर्णानुक्रम में क्रमबद्ध नामों की सूची मिलती है। lessकेवल फाइलों की लंबी सूची को आसान देखने के लिए इसे कमांड दें।


2

एक ठंडी चाल

$ps -ejH

आपको नामों के साथ सभी प्रक्रियाएं मिलेंगी

exmple:
1747   568   568 ?        00:00:00   colord
1833  1832  1832 ?        00:00:00   gnome-keyring-d
2263   568   568 ?        00:00:00   udisksd
2311  2311  2311 ?        00:00:00   cupsd
2315  2315  2311 ?        00:00:00     dbus

रीडायरेक्ट या आउटपुट को किसी फ़ाइल में कॉपी करें और फिर खोलें nano, दबाएँ Ctrl+ W और आप जो नाम चाहते हैं उसे खोज सकते हैं।


1

आप htopएक उपयोगकर्ता द्वारा परिभाषित स्ट्रिंग के साथ परिणामों को फ़िल्टर करने के लिए F4 का उपयोग और फिर हिट कर सकते हैं । आपके पास F3 मारकर एक कस्टम खोज सुविधा भी उपलब्ध है।


1

यदि दो प्रक्रियाओं में समस्या है, तो आप केवल grep का उपयोग कर सकते हैं :

grep firefox /proc/*/cmdline

0

मैंने अभी इस ps al उपनाम को Lennart Poettering Blog पर पढ़ा है। उत्पादन प्रणाली नियंत्रण समूह के पालन के अनुसार है:

alias psc='ps xawf -eo pid,user,cgroup,args'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.