daemon

Daemon

긴 시간 살아있는 process (background로 실행됨)

  • 만드는 방법

    • fork 후 부모를 죽임
      • shell이 이 command가 종료되었다고 판단
    • setsid()를 호출
      • 새로운 세션 생성, 새로운 process group 생성
      • 새로운 세션을 생성해서 터미널이 닫혀도 살아남음
  • setsid()

    • process group의 leader는 해당 함수를 호출할 수 없음
  • 규칙

    • current work directory를 root로 설정
      • 다른 path에서 실행된다면 해당 path의 file system을 unmount를 못함
    • umask를 0으로
      • umask는 상속되기 때문
    • 필요없는 fd는 닫기
      • fd 또한 상속되기 때문