Daemon
긴 시간 살아있는 process (background로 실행됨)
-
만드는 방법
- fork 후 부모를 죽임
- shell이 이 command가 종료되었다고 판단
- setsid()를 호출
- 새로운 세션 생성, 새로운 process group 생성
- 새로운 세션을 생성해서 터미널이 닫혀도 살아남음
- fork 후 부모를 죽임
-
setsid()
- process group의 leader는 해당 함수를 호출할 수 없음
-
규칙
- current work directory를 root로 설정
- 다른 path에서 실행된다면 해당 path의 file system을 unmount를 못함
- umask를 0으로
- umask는 상속되기 때문
- 필요없는 fd는 닫기
- fd 또한 상속되기 때문
- current work directory를 root로 설정