Process Group ID 를 나타내는 PGID를 의미한다고 생각합니다 .
프로세스가 분기되면 상위에서 PGID를 상속합니다. 프로세스가 프로세스 그룹 리더 가되면 PGID가 변경되고 해당 PGID가 PID에서 복사됩니다. 그때부터 새 자식 프로세스는 자신의 새 프로세스 그룹을 시작하고 (자신의 새 프로세스 그룹을 시작하지 않는 한) 그 하위 항목은 해당 PGID를 상속합니다.
대부분의 대화식 쉘과 같이 작업 제어가있는 쉘에서 각 작업은 자체 프로세스 그룹에 배치됩니다. 쉘 스크립트를 실행하면 스크립트를 실행하는 쉘 프로세스가 그룹 리더가되고 PGID는 PID와 같습니다.
스크립트를 실행하는 데 사용되는 대부분의 쉘과 같이 작업 제어가없는 쉘에서 명령은 쉘의 프로세스 그룹에서 실행됩니다.
구문 kill -- -N
은 PGID = N 인 그룹의 모든 프로세스를 종료합니다. PGID이므로 프로세스 그룹 리더의 PID 만 임의의 PID와 함께 사용할 수 없습니다. 이것은 본질적으로 쉘의 방법입니다
kill %jobid
구문 작동-내부적으로 %jobid
작업의 PGID로 변환 하고 해당 PGID로 신호를 보냅니다.
다른 셸 스크립트의 자체 프로세스 그룹에서 스크립트를 실행하는 간단한 방법은 없습니다. 그래도 몇 가지 제안 은 쉘 스크립트의 프로세스 그룹을 설정하는 방법을 참조하십시오 .