본문 바로가기

Linux

daemon programming

http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/%B5%A5%B8%F3(daemon)%20%C7%C1%B7%CE%B1%D7%B7%A5%BF%A1%20%B4%EB%C7%D1%20%C0%CC%C7%D8

http://www.joinc.co.kr/modules/moniwiki/wiki.php/Code/C/makedaemon


실행은 -D 옵션을 주고 실행 시킨다.


1. 우선 fork 를 호출해서 자식프로세스를 생성시킨 다음 부모프로세스를 종료시킨다.
2. setsid 를 이용하여 새로운 세션을 만들고, 현재프로세스(자식)의 PID가 세션의 제어권을 가지도록 한다.
3. chdir 을 이용하여 프로세스가 루트디렉토리에서 작업을 수행하도록 변경시켜준다.

[code]
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <fcntl.h>

int main()
{
    pid_t pid;

    if (( pid = fork()) < 0)
    exit(0);

    // 부모프로세스를 종료한다.
    else if(pid != 0)
    exit(0);
    
    // chdir("/"); // 생략 가능

    // 여기에 프로그램 본체를 넣는다.
    setsid();    
    while(1)
    {
    sleep(1);
    }
}
[/code]

'Linux' 카테고리의 다른 글

gstreamer, qt4  (0) 2013.09.26
사용자 루트 권한 주기  (0) 2013.09.26
bash  (0) 2013.09.26
sysinfo, available memory size  (0) 2013.09.26
iconv  (0) 2013.09.26