मैक ओएस एक्स पर pgrep और pkill विकल्प?


23

क्या मैक ओएस एक्स पर pgrepऔर pkillकमांड के विकल्प हैं या क्या मुझे सिर्फ मेरे लिए उपलब्ध अन्य कमांड का उपयोग करके उनके लिए उपनाम बनाना चाहिए?

जवाबों:


11

आप MacPorts का उपयोग कर सकते हैं :sudo port install proctools

यहाँ का परिणाम है port search pgrep:

proctools @0.4pre1 (sysutils)
    pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)


@AndrewMarshall सही है। होमब्रे के लिए प्रयास करेंbrew install proctools
cwd

18

Homebrew के साथ OS X शेर पर :

$ brew install proctools

यह डाउनलोड, बनाता है और स्थापित करता है pgrep, pkillऔर pfind


क्या XKill करने के तरीके पर काम करने के लिए GUI का निर्माण संभव होगा, लेकिन OSX के लिए
जोनास ओस्टमैन

11

आपको अब किसी विकल्प की आवश्यकता नहीं है: चूंकि MacOS 10.8 pgrepऔर pkillडिफ़ॉल्ट रूप से उपलब्ध हैं।


10

यह मानते हुए कि आप मैक में बैश के कुछ अपेक्षाकृत हालिया संस्करण का उपयोग कर रहे हैं, आप अपने स्वयं के संस्करण pgrepको फ़ंक्शन के रूप में लिख सकते हैं और फिर उसे अपनी .bashrcफ़ाइल में जोड़ सकते हैं:

function pgrep() {
    ps aux | grep $1 | grep -v grep
}

जैसा कि pkillआप निम्नलिखित का उपयोग कर सकते हैं:

function pkill() {
    local pid
    pid=$(ps ax | grep $1 | grep -v grep | awk '{ print $1 }')
    kill -9 $pid
    echo -n "Killed $1 (process $pid)"
}

मैं Z शैल पर हूं, हालांकि इसे अपनाने में कोई समस्या नहीं होनी चाहिए।
एइमन्तस

1
या / बिन / किल $ (ps ax | awk '$ 5 ~ / "" $ 1 "/ / {प्रिंट $ 1}') अधिक वफादार pgrep के लिए (प्रक्रिया नाम केवल, नहीं args। मैं आदत से बाहर बिन / मार / क्योंकि यह मज़बूती से एक से अधिक पीआईडी लेता है को मारने के लिए अन्य चाल रहे हैं, यदि आप 'ग्रेप -v ग्रेप' करने की आवश्यकता नहीं कराने के लिए regexp के नियंत्रण में हैं -।! कि जिस तरह से आप greps pkill कर सकते हैं)
जेआरजी

मेरा सुझाव है कि आप functionखोजशब्द को हटा दें , यह पदावनत है। इस पोस्ट को
सेजएक्स

आप कमाल के है।
बिजन

2

Proctools शामिल हैं pgrepऔर pkillOpenBSD और OSX के लिए उपलब्ध है। इसे थोड़ी देर में अपडेट नहीं किया गया है, लेकिन इसे अभी भी काम करना चाहिए (कम से कम ओएसएक्स पर जो शायद ही कभी अपने एबीआई को संशोधित करता है)।


Proctools स्नो लेपर्ड के साथ अच्छी तरह से संकलित नहीं करते हैं

1

आप हत्या करने की कोशिश कर सकते हैं। यह नाम से प्रक्रियाओं को मारता है। आपके द्वारा पास होने वाली स्ट्रिंग से मेल खाने वाली कोई भी प्रक्रिया मार दी जाती है।

killall httpd ( kill all apache processes )
killall php ( kill all php process )

यदि तुम करो

killall -s man ( kill any manual page processes, if a user is using man [command]

यह आपको उन प्रक्रियाओं की एक सूची दिखाएगा जो नीचे की तरह मारे जाएंगे।

kill -TERM 70836

यदि आप एक अलग सिग्नल चाहते हैं, तो निम्न कार्य करें

killall -9 processname

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.