PID, PPID, PGID 및 SID를 집합 적으로 표시하는 ps 스위치


38

-A, aux, ef 등과 같은 다른 종류의 스위치로 ps를 시도했지만 프로세스 ID (PID), 부모 프로세스 ID (PPID), 프로세스 그룹을 알려주는 스위치의 올바른 조합을 찾을 수없는 것 같습니다 동일한 출력에서 ​​프로세스의 ID (PGID) 및 세션 ID (SID).


ps -o <field>,<field>,.... 매뉴얼 페이지에 세부 사항이 있습니다.
Mikel

@Mikel 나는 우분투 12.04에서 작동하지 않는 것을 보았습니다.
JohnMerlino

1
잘 작동합니다. 어떻게 운영하고 있습니까? (주는 것을 -o제어 출력 형식,하지만 여전히 할 수 있습니다 -A, -e, -p, 등을 선택 할 보여주기 위해 처리합니다.)
미켈

답변:


64

여기 있습니다 :

$ 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

"comm"과 "head"는 무엇을합니까?
JohnMerlino

3
@JohnMerlino "comm"은 명령 이름을 인쇄하고 head다른 명령이며 아무 관련이 없습니다 ps. 첫 번째 N (기본적으로 10 줄) 만 인쇄합니다. 여기에서 답의 크기를 제한하기 위해 사용했습니다. ps에 대해 알아야 할 모든 내용은에 설명되어 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가 PID라고 가정하고 관련 PPID, PGID, SID 및 CMD를 알고 싶습니다.
CentOS / RedHat 6.x 및 7.x에서 테스트
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.