UNIX प्रक्रिया की कमांड लाइन कैसे प्राप्त करें?


8

क्या मैक ओएस एक्स पर एक प्रक्रिया को लागू करने के लिए उपयोग की जाने वाली कमांड लाइन को पकड़ना संभव है?


1
ps --pid $PID -o args=वैसे भी मैं यही प्रयोग करता हूँ ...
yardena

2
उस कमांड का मैक समतुल्य है:ps -p <pid> -o args=
नैट

1
यदि "-o args =" आउटपुट को छोटा करता है, तो आप कोशिश कर सकते हैंps -p <pid> -o command=
जोस अल्बन

जवाबों:


11

ps axआपको सभी चलने वाली प्रक्रियाओं की कमांड लाइन दिखाता है; आप मनचाहे पिड के लिए grep कर सकते हैं।


@ mark4o या बस ps awux | बिल्ली, के रूप में ps -w प्रदर्शित करने के लिए स्तंभों की संख्या को सीमित नहीं करेगा जब आउटपुट स्टडआउट नहीं होता है, जैसे कि जब किसी अन्य कमांड पर पाइप किया जाता है।
jtimberman

1
ऐसा हर हफ्ते क्यों होता है? "चेतावनी: बुरा पीएस सिंटैक्स, शायद एक फर्जी '-'; procps.sf.net/faq.html देखें " और "ध्यान दें कि" पीएस-ऑक्स "" पीएस ऑक्स "से अलग है। पोसिक्स और यूनिक्स मानकों के लिए" आवश्यक है। " ps -aux "x" नामक उपयोगकर्ता के स्वामित्व वाली सभी प्रक्रियाओं को प्रिंट करता है, साथ ही -a विकल्प द्वारा चयनित सभी प्रक्रियाओं को प्रिंट करता है। यदि "x" नाम का उपयोगकर्ता मौजूद नहीं है, तो यह ps कमांड की व्याख्या कर सकता है। इसके बजाय "ps aux" और एक चेतावनी प्रिंट करें। इस व्यवहार का उद्देश्य पुरानी लिपियों और आदतों को बदलने में सहायता करना है। यह नाजुक है, परिवर्तन के अधीन है, और इस प्रकार इस पर भरोसा नहीं किया जाना चाहिए। "
नमस्ते 71१

मुझे नहीं पता, हैलो 71। मैंने आपके लिए अपने दो साल पुराने उत्तर को सही किया।
Bkkbrad

4

कर देता है:

~$ ps ax | grep "ntp"
   57   ??  Ss     0:04.66 /usr/sbin/ntpd -c /private/etc/ntp.conf -n
 3104 s000  S+     0:00.00 grep ntp

क्या आप इसे करने की जरूरत है (आप रुचि रखते हैं कार्यक्रम के लिए ntp बदल)? यह आम तौर पर मुझे रनिंग प्रॉसेस की कमांड-लाइन दलीलें देता है (मैं उदाहरण के लिए सिस्टम डेमॉन को चलाते समय लॉन्चड का क्या उपयोग करता है यह जांचने के लिए उपयोग करता हूं)।


2

cat /proc/$PROCESSNUMBER/cmdline | tr '\0' '\n'

हालाँकि, यह लिनक्स विशिष्ट है, यह $PROCESSNUMBERकर्नेल ( /proc/$PROCESSNUMBER/cmdlineभाग) से सीधे गिने जाने की प्रक्रिया की कमांडलाइन प्राप्त करता है और प्रत्येक तर्क को अलग-अलग लाइन पर अनुवाद करके ( tr -tokenप्रतिस्थापित करने के साथ ) the \ 0 के newlines (\ n) में डालकर पठनीय बनाता है ।

यह प्रक्रिया केवल तभी काम करती है जब आप ps -ef$ PROCESSNUMBER भाग में एक वास्तविक प्रोसेसनंबर (रनिंग कमांड द्वारा एक पा सकते हैं ) लगाते हैं!


3
मूल पोस्टर मैक ओएस एक्स के लिए कहा (जो बॉक्स से बाहर नहीं है procfs)
आंद्रे होल्ज़नर

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