답변:
사용하다 ps -o ppid=
ps -o ppid= 2072
리턴 은 명령으로 프로세스의 PPID를 제공합니다 . 또한 구식를 사용할 수 있습니다 : .2061
ps -o ppid= -C foo
foo
ps | grep
ps -eo ppid,comm | grep '[f]oo'
ps -f 2072
반품
UID PID PPID C 시간 TTY 상태 시간 명령 izx 2072 2061 0 07:16? S 0:00 / usr / lib / pulseaudio / pulse / gconf-helper
pstree
관계는 다음과 같습니다 pstree -s -p 2072
:
init (1) ───pulseaudio (2061) ───gconf-helper (2072)
ppid=
pid 앞뒤 공간 이 필요한 것 같습니다. 생략하면 다른 결과가 나옵니다.
echo $PPID
이 부모 pid의 명령이 필요한 경우 :
cat /proc/$PPID/comm
전체 명령 행이 필요한 경우 (모든 옵션 포함) :
cat /proc/$PPID/cmdline
$PPID
쉘에 의해 정의되며 부모 프로세스의 PID입니다./proc/
각 프로세스의 PID에 약간의 차이가 있습니다. 그런 다음 cat /proc/$PPID/comm
PID의 명령 이름을 에코합니다PPID
그래서 모든 POSIX 호환 쉘이 적절이 설정되어야 POSIX 표준의 한 부분으로 정의된다. pubs.opengroup.org/onlinepubs/9699919799/utilities/…
pstree
명령 이름사용 pstree
하면 자식 프로세스 이름으로 검색하고 부모, 조부모 및 자식 프로세스의 모든 자식과 함께 프로세스 ID (PID)를 얻을 수 있습니다.
$ pstree -hp | grep sleep
|-cron(763)---cron(795)---sh(839)---display-auto-br(841)---sleep(8414)
이 경우 sleep
자식 명령이고 PID는 8414
입니다. 부모 ID는 841이며이라고 display-auto-brightness
합니다. 조부모는 sh
프로세스 ID 가 인 쉘 ( )입니다 839
. 증조부모 cron
의 프로세스 ID는 795
입니다. 증조부모도 cron
프로세스 ID가입니다 763
.
sleep
이름 대신 프로세스 ID로 검색 하려면 다음을 사용할 수 있습니다.
$ pstree -hp | grep 14653
|-cron(763)---cron(795)---sh(839)---display-auto-br(841)---sleep(14653)
통지 sleep
ID로 변경 과정을 14653
. 상위 (PID 841)는 1 분 동안 휴면 한 후 1 초 동안 깨어 난 후 sleep
새 프로세스 ID를 가져 오는 새 명령 을 시작합니다 . 이것이 sleep
프로세스 ID로 검색하는 것보다 검색이 더 쉬운 또 다른 이유 입니다.
이 코드는 다음과 같습니다. 일출과 일몰을 기준으로 디스플레이 밝기를 자동 조정 하고이 질문에 맞게 조정합니다.
부팅 프로세스로 되돌아가는 중첩 된 체인을 보려면 이름 대신 PID를 사용하십시오.
$ pstree -aps 8541
systemd,1 splash fastboot kaslr
└─cron,763 -f
└─cron,795 -f
└─sh,839 -c /usr/local/bin/display-auto-brightness
└─display-auto-br,841 /usr/local/bin/display-auto-brightness
└─sleep,8541 60
참고 : 1 분이 더 지나고 sleep 명령은 새로운 PID (8541)를 얻습니다.
807
또는 cron
과 양산 경우 같은 라인보다 아이들뿐만 아니라 retruned 될 것이다. 그러나 문제는 모든 아이들이 아니라 부모를 찾는 것에 관한 것이었다.
1
. PID 1을 죽일 수 있다고 생각하지 않습니다.
ps -efj
같은 용도로도 사용할 수 있습니다.
예를 들어
> ps -efj | head
UID PID PPID PGID SID C STIME TTY TIME CMD
root 1 0 1 1 0 Jul01 ? 00:00:13 /sbin/init splash
root 2 0 0 0 0 Jul01 ? 00:00:00 [kthreadd]
root 3 2 0 0 0 Jul01 ? 00:00:02 [ksoftirqd/0]
root 5 2 0 0 0 Jul01 ? 00:00:00 [kworker/0:0H]
root 7 2 0 0 0 Jul01 ? 00:06:44 [rcu_sched]
root 8 2 0 0 0 Jul01 ? 00:00:00 [rcu_bh]
root 9 2 0 0 0 Jul01 ? 00:00:00 [migration/0]
root 10 2 0 0 0 Jul01 ? 00:00:08 [watchdog/0]
root 11 2 0 0 0 Jul01 ? 00:00:08 [watchdog/1]
ps -o args ...
하고 결과를 사용 하는 것과 관련이 있지만 약간의 냄새가납니다.