티스토리 뷰

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.
본문

 Python으로 Daemon 생성 코드를 작성해봤습니다. 간단하게 작성한 코드이며 while문을 이용하여 무한루프를 사용하여 데몬이 살아있는지 확인하였습니다.

Wiki 백과에 c언어 fork() 생성을 검색하면 존재하는 Daemon 예제코드가 있습니다.


Daemon 생성을 위한 단계

- fork()를 호출하여 데몬이 될 새로운 프로세스를 생성

- 부모프로세스는 exit()를 호출하여 부모프로세스를 종료

- Daemon은 새로운 프로세스 그룹, 세션을 제공하는 setsid() 호출

- 표준 입력, 출력, 오류를 열고 /dev/null로 재지정


Daemon 생성을 위한 코드

import os, sys

def daemon():
        try:
          pid = os.fork()

          if pid > 0:
            print 'PID: %d' % pid
            sys.exit()

        except OSError as error:
          print 'Unable to fork. Error: %d (%s)' % (error.errno, error.strerror)
          sys.exit()

        doTask()

def doTask():
        "new session create"
        os.setsid()

        os.open("/dev/null", os.O_RDWR)
        os.dup(0)
        os.dup(0)

        while True:
          pass

if __name__ == '__main__':
        daemon()

Daemon 동작 확인



개인 광고 영역


댓글
댓글쓰기 폼
Total
5,270,235
Today
1,447
Yesterday
1,177
«   2018/10   »
  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      
글 보관함