Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

시다바리

[C 언어] setsid() 본문

Language/C

[C 언어] setsid()

호서아빠 2008. 8. 8. 10:51

  세션(session) : 프로세스 그룹들의 모임, 프로세스 그룹을 일종의 작업이라 하고, 세션은 일종의 작업공간.

  setsid() : 새로운 세션을 하나 만드는 함수. 다만 현재 프로세스 그룹 리더인 프로세스가 호출할 수는 없다.

  함수원형

#include <sys/types.h>
#include <unistd.h>

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

  * setsid()를 사용할때에는 프로세스 그룹 리더가 아닌 프로세스가 함수를 호출해야 된다.
     만약 프로세스 그룹 리더가 setsid()를 호출하면 에러를 리턴.

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

Comments