하나 이상의 프로세스 그룹들의 집합, 세 개의 프로세스 그룹으로 구성된다.

셸 파이프라인을 통해서 프로세스들이 하나의 프로세스 그룹을 형성한다.

 

 

 프로세스가 새 새션을 만들때는 setsid 를 호출

#include <unistd.h>
pid_t setsid(void);

반환값: 성공 시 프로세스 그룹 ID, 오류 시 -1

호출자가 이미 프로세스 그룹 리더일 경우 오류 반환

 

 

[ 세션 생성과정 ]

  1. setsid()를 호출한 프로세스는 새로운 하나의 세션을 생성하고, 그 세션의 세션리더가 된다.
  2. setsid()를 호출한 프로세스는 새로운 프로세스 그룹을 생성하게 되고, 그 프로세스 그룹의 프로세스 그룹리더가 된다.
  3. setsid()를 호출한 프로세스는 새로운 세션을 만들었으므로 이전 세션의 제어 터미널을 사용할 수 없다. 따라서 setsid()를 호출하여 새롭게 만든 세션은 제어 터미널을 가지고 있지 않다.

 

* 새로운 세션을 만드는 이유 : 자식 프로세스를 현재 세션과 상관없이 동작시키기 위함.

+ Recent posts