하위 프로세스가 exec 함수 중 하나를 호출한 후 프로세스가 하위 프로세스 중 하나의 프로세스 그룹 ID를 변경할 수 없는 이유는 무엇입니까?

하위 프로세스가 exec 함수 중 하나를 호출한 후 프로세스가 하위 프로세스 중 하나의 프로세스 그룹 ID를 변경할 수 없는 이유는 무엇입니까?

APUE에서:

프로세스는 자신 또는 하위 프로세스의 프로세스 그룹 ID만 설정할 수 있습니다. 또한 하위 프로세스는 exec 함수 중 하나를 호출한 후 하위 프로세스 중 하나의 프로세스 그룹 ID를 변경할 수 없습니다.

왜 "하위 프로세스가 exec 함수 중 하나를 호출한 후 하위 프로세스 중 하나의 프로세스 그룹 ID를 변경할" 수 없습니까? 감사해요.

답변1

"공식적인" 이유는 모르지만 프로세스에서 PGID가 갑자기 변경될 것이라고 예상할 필요는 없다는 생각이 듭니다.

따라서 이는 쉘 파이프를 설정할 수 있도록 포크 이후에 허용되지만 execve()새 바이너리가 특정 상태를 찾은 후에는 (새 바이너리가 변경하기로 결정할 때까지) 영구적이어야 합니다.

관련 정보