상위 프로세스의 프로세스 ID를 어떻게 알 수 있나요?

상위 프로세스의 프로세스 ID를 어떻게 알 수 있나요?

루프가 있는 스크립트가 있습니다.

while read host
do
./script &
done

./script에서 백그라운드로 시작되는 현재 프로세스의 프로세스 ID를 알고 스크립트에서 사용하고 싶습니다.

답변1

POSIX 쉘(예: bash) 을 가정하면 은 $$현재 쉘의 PID이자 $PPID상위 쉘의 PID이기도 합니다. $$스크립트에 전달하거나 $PPID스크립트에서 값을 확인할 수 있습니다.

답변2

현재 쉘의 프로세스 ID는 특수 변수에 있습니다 $$.

이를 분기된(백그라운드) 프로세스에 전달할 수 있습니다.

./script $$ &

"스크립트"에서는 이것이 첫 번째 인수가 됩니다. 따라서 다음과 같습니다.

parent_pid=$1

요약이 있습니다여기에 bash 특수 변수.

관련 정보