!['ps' 매개변수는 함께 PID, PPID, PGID 및 SID를 표시합니다.](https://linux55.com/image/49087/'ps'%20%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98%EB%8A%94%20%ED%95%A8%EA%BB%98%20PID%2C%20PPID%2C%20PGID%20%EB%B0%8F%20SID%EB%A5%BC%20%ED%91%9C%EC%8B%9C%ED%95%A9%EB%8B%88%EB%8B%A4..png)
, , 등 ps
다양한 유형의 스위치를 사용해 보았지만 프로세스 ID(PID), 상위 프로세스 ID(PPID), 프로세스 그룹을 알려주는 올바른 스위치 조합을 찾을 수 없는 것 같습니다. ID(PGID) 등이 동일한 출력에 표시됩니다. 프로세스의 세션 ID(SID)입니다.-A
aux
ef
답변1
여기 있어요:
$ 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
답변2
노력하다
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'
SAMPLE:
[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 및 8.x에서 테스트되었습니다.
답변3
아래 명령을 사용해 보세요. 잘 작동합니다.
ps -eo pid,ppid,pgid,sgid| head
PID PPID PGID SGID
1 0 1 0
2 0 0 0
4 2 0 0
6 2 0 0
7 2 0 0
8 2 0 0
9 2 0 0
10 2 0 0
11 2 0 0