क्या मैं OS X पर GNU ps का उपयोग कर सकता हूँ?


18

हम GNU कोरुटिल के माध्यम से स्थापित कर सकते हैं brew। लेकिन बर्तनों में नहीं psहै । क्या हम psOS X में ग्नू का उपयोग कर सकते हैं ?

मैं GNU का उपयोग करना चाहता हूं psक्योंकि इसमें अधिक विकल्प और विशेषताएं हैं।


क्या आपने OSX पर चलने psया ps -efटर्मिनल में प्रयास किया है ? OSX 10.7.5 पर मेरे लिए दो अलग-अलग मशीनों पर कोई संशोधन नहीं है। यह / बिन / पीएस में है
jammypeach

हाँ, मुझे पता है, मैं GNU का उपयोग करना चाहता था psक्योंकि इसमें अधिक विकल्प और विशेषताएं हैं।
सांग्युन ली

ठीक है, खेद है कि मुझे एहसास नहीं था कि सवाल से कहा गया है। मैं सुझाव देता हूं कि कहीं न कहीं, किसी और को भी मेरे बारे में सोचने के लिए
उकसाओ

सुझाव के लिए धन्यवाद। मैंने इसके बारे में और स्पष्टीकरण जोड़ा।
सांग्युन ली

जवाबों:


22

कोई पोर्टेबल पीएस प्रोग्राम नहीं है। लिनक्स पर उपलब्ध ps कमांड है, जैसा कि अन्य ने उल्लेख किया है, "procps" पैकेज से। इसका कारण OSX में पोर्ट नहीं किया जा सकता है क्योंकि Linux और OSX कर्नेल इस जानकारी को उसी तरह से उजागर नहीं करते हैं। लिनक्स / खरीद में एक छद्म-फाइलसिस्टम का उपयोग करता है, जबकि OSX sysctl फ़ंक्शन का उपयोग करता है। अन्य प्रणालियाँ या तो तंत्र का उपयोग कर सकती हैं लेकिन एक अलग प्रारूप में डेटा प्रदान करती हैं, या कर्नेल की मेमोरी से सीधे पढ़ने के लिए ps जैसे कार्यक्रमों की आवश्यकता हो सकती है।

सामान्य तौर पर पीएस और टॉप जैसे कार्यक्रमों के लिए प्रक्रिया की जानकारी उपलब्ध होने का कोई मानक नहीं है; इसलिए कार्यक्रम को एक विशिष्ट ऑपरेटिंग सिस्टम के लिए डिज़ाइन किया जाना है। यदि OSX ps से एक विशिष्ट सुविधा गायब है, तो आपको एक और प्रोग्राम ढूंढना होगा, जो इसे कर सकता है, या एक स्वयं लिख सकता है ( विशेष रूप से KERN_PROC में sysctl मैनुअल को देखें), या मौजूदा ps को संशोधित करें। सुविधा जोड़ने के लिए कमांड

वैकल्पिक रूप से, यदि आप पीएस कमांड के आउटपुट को पार्स करके अपनी आवश्यकता के अनुसार प्राप्त कर सकते हैं, तो आप एक पोर्टेबल प्रोग्राम लिखने में सक्षम हो सकते हैं - -oविकल्प के साथ आउटपुट प्लेटफॉर्म पर उचित रूप से विश्वसनीय है, खासकर यदि आप यूनिक्स मानक के लिए संदर्भित करते हैं स्तंभ नाम का उपयोग करने के लिए।


क्या /procफाइलसिस्टम ही एकमात्र विधि है जिसमें लिनक्स कर्नेल प्रक्रियाओं की सूची प्राप्त करने के लिए प्रदान करता है, या क्या अलग-अलग सिस्टम कॉल हैं जो उस जानकारी को प्रदान करते हैं?
टान्नर स्विट

1
@TannerSwett मुझे ऐसा नहीं लगता। / Proc लागू होने से पहले, linux पर ps कमांड / dev / kmem और / dev / swap से पढ़कर काम किया।
रैंडम 832

9

नहीं - चूंकि यह मौजूद नहीं है। के रूप में क्यों कोई builtin है psजीएनयू के दशक में coreutilsपैकेज, देख यूनिक्स और लिनक्स मंच पर इस सवाल का जवाब।

Homebrew के माध्यम से उपलब्ध सबसे अच्छा वैकल्पिक सूत्र है psgrep:

psgrep एक छोटा बैश शेल स्क्रिप्ट है जो अपनी शक्ति के लिए भयानक उपयोगिता grep (1) का उपयोग करके प्रक्रिया सूची ( ps (1) द्वारा प्राप्त ) के रूप में खोजता है ।

उस ने कहा, आप अभी भी psgrepOS X की इच्छानुसार व्यवहार कर सकते हैं ps। उदाहरण के लिए:

   OPTIONS
   -a     Search the process list using BSD's "ps aux" format. This option
          includes all users' processes in the search.

   -b     Search the process list using BSD's "ps  ux"  format  (default).
          This option only includes the running user's processes.

pgrepके माध्यम से भी उपलब्ध है brew, जो वाक्य-रचना के करीब है ps, लेकिन उससे कम कुशल है psgrep:

psgrep (1) की तुलना में अधिक उपयोगी है pgrep (1) क्योंकि न केवल यह प्रक्रिया सूची खोज और एक पीआईडी लौट सकते हैं, यह इस तरह अपने यूआईडी, GID, स्मृति / CPU उपयोग, सुंदरता के रूप में और अधिक उपयोगी जानकारी दे सकते हैं, और कुछ और समर्थित द्वारा ps।


सब जोर मेरा।


2
pgrepओएस एक्स के हाल के संस्करणों के हिस्से के रूप में अच्छी तरह से है
nohillside

@ पानी का अघ! अच्छी बात, पुष्टि:type -a pgrep pgrep is /usr/local/bin/pgrep pgrep is /usr/bin/pgrep
njboot

बस एक तरफ, जैसा कि यहां बताया गया है , proctoolsMacPorts या Homebrew में से कोई भी पैकेज प्रदान करता है pgrepऔर pkillजो कि मैं व्यक्तिगत रूप से देख रहा था जब मैंने यहां दिखाया था।
TheDudeAbides

3

psविकिपीडिया के अनुसार GNU कोरुटिल का हिस्सा नहीं है । संस्करण जो मेरे लिनक्स वितरण के साथ आता है , खुरों से लगता है , लेकिन ऐसा लगता है कि होमब्रे में इसके लिए कोई सूत्र नहीं है। ऐसे सूत्र हैं pstreeजिनके लिए आप महान पेड़ विचार दे सकते हैं, और htopएक और अच्छी प्रक्रिया दर्शक भी है।

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