पीएस सामूहिक रूप से पीआईडी, पीपीआईडी, पीजीआईडी ​​और एसआईडी प्रदर्शित करने के लिए स्विच करता है


39

मैंने विभिन्न प्रकार के स्विच जैसे- -A, aux, ef और आगे के साथ ps की कोशिश की, लेकिन मुझे स्विचेस का सही संयोजन नहीं मिल रहा है जो मुझे प्रोसेस आईडी (PID), पेरेंट प्रोसेस आईडी (PPID), प्रोसेस ग्रुप बताएगा ID (PGID), और एक ही आउटपुट में एक प्रक्रिया का सत्र ID (SID)।


ps -o <field>,<field>,...। आदमी पृष्ठ में विवरण है।
मिकेल

@ मिकेल मैंने देखा कि पहले से ही यह ubuntu 12.04 में काम नहीं करता है
JohnMerlino

1
यह ठीक काम करना चाहिए। आप इसे कैसे चला रहे हैं? (ध्यान दें कि -oनियंत्रण उत्पादन प्रारूप, लेकिन आप अभी भी चाहते हो सकता है -A, -e, -p, आदि का चयन करने के जो दिखाने के लिए संसाधित करता है।)
मिकेल

जवाबों:


66

हेयर यू गो:

$ ps  xao pid,ppid,pgid,sid | head
  PID  PPID  PGID   SID
    1     0     1     1
    2     0     0     0
    3     2     0     0
    6     2     0     0
    7     2     0     0
   21     2     0     0
   22     2     0     0
   23     2     0     0
   24     2     0     0

यदि आप प्रक्रिया का नाम भी देखना चाहते हैं, तो इसका उपयोग करें:

$ ps  xao pid,ppid,pgid,sid,comm | head
  PID  PPID  PGID   SID COMMAND
    1     0     1     1 init
    2     0     0     0 kthreadd
    3     2     0     0 ksoftirqd/0
    6     2     0     0 migration/0
    7     2     0     0 watchdog/0
   21     2     0     0 cpuset
   22     2     0     0 khelper
   23     2     0     0 kdevtmpfs
   24     2     0     0 netns

"कम" और "हेड" क्या करता है?
JohnMerlino

3
@JohnMerlino "comm" कमांड नाम को प्रिंट करता है और headएक अलग कमांड है, इससे कोई लेना-देना नहीं है ps, यह सिर्फ पहले N (10 बाय डिफॉल्ट) लाइनों को प्रिंट करता है, मैंने इसका उपयोग अपने उत्तर के आकार को सीमित करने के लिए किया था। पीएस के बारे में आपको जो कुछ भी जानने की जरूरत है, उसमें समझाया गया है man ps
terdon

commपूर्ण आदेश मुद्रित नहीं करता है। जैसे, यदि आप दौड़ते हैं python foo.py, तो कॉम आपको केवल pythonभाग दिखाएगा , लेकिन नहींpython foo.py
32r34wgf3e

1
हां, इसीलिए मैंने कहा कि यह कमांड के नाम को प्रिंट करता है । कमांड है python, foo.pyकमांड का तर्क है। कोशिश करें cmdकि आप तर्क भी चाहें।
terdon

13

प्रयत्न

ps -efj | less

विशेष रूप से, यदि आप एक निश्चित ProcessName या PID के लिए PID / PGID / PPID / SID का पता लगाना चाहते हैं:

ps -efj | grep ProcessName

ps -efj | grep PID

या बेहतर स्वरूपित आउटपुट के लिए, प्रयास करें:

ps -ejf | egrep 'STIME|ProcessName'

ps -ejf | egrep 'STIME|pid'

Examples:

ps -ejf | egrep 'STIME|http'

ps -ejf | egrep 'STIME|1234'

नमूना:

[ram@thinkred1cartoon ~]$ ps -ejf | egrep 'STIME|http'

UID        PID  PPID  PGID   SID  C STIME TTY          TIME CMD
root      1450     1  1450  1450  0 08:45 ?        00:00:04 /usr/sbin/httpd -DFOREGROUND
ram       3717     1  2589  2589  0 08:47 ?        00:00:00 /usr/libexec/gvfsd-http --spawner :1.3 /org/gtk/gvfs/exec_spaw/1
apache   11518  1450  1450  1450  0 09:40 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   11519  1450  1450  1450  0 09:40 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   11520  1450  1450  1450  0 09:40 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   11521  1450  1450  1450  0 09:40 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   11522  1450  1450  1450  0 09:40 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
माना जा रहा है कि 1234 पीआईडी ​​है और आप इसके संबद्ध पीपीआईडी, पीजीआईडी, एसआईडी और सीएमडी को जानना चाहते हैं
CentOS / RedHat 6.x और 7.x पर परीक्षण किया गया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.