데몬(daemon)
데몬(daemon)
데몬은 시스템 백그라운드에서 활동중인 프로세스입니다.
백그라운드 프로세스 중에서 부모프로세스(PPID)가 1 혹은 다른 데몬프로세스인 프로세스를 말합니다.
대표적인 데몬 프로세스
대표적인 데몬 프로세스는 웹서버라고 할수있습니다.
웹서버 데몬 프로세스는 서버에서 터미널을 통해 사용자와 대화할 수 없도록 백그라운드 프로세스로 생성됩니다.
프로그램의 소스 안에서 fork() 함수를 통해 자식을 생성하고 부모는 죽게됩니다.
그리고 생성된 자식은 부모프로세스를 1 (init) 로 변경한 뒤 실제로 서비스를 수행할 자식(손자에 해당)프로세스를 여러개 fork() 합니다.
그리고 그 자식(손자) 프로세스들은 계정을 setuid() 함수를 이용해 웹서버가 실행되도록 설정된 계정으로 바꾼다.
서버 데몬 유형
Standalone 타입의 데몬
시스템에서 독자적으로 프로세스가 구동되어 서비스를 제공하는 데몬입니다.
대표적인 예로는 웹서버와 DB 서버가 있습니다.
Standalone 타입의 데몬의 특징으로는 메모리 상에 항상 구동되어야 한다는 점이있습니다.
그래서 자주 호출되는 서비스를 Standalone 타입으로 사용하는것을 권장합니다.
만약 가끔 사용될뿐인 데몬을 Standalone 형으로 지정하면 메모리상에 항시 구동되므로 자원의 낭비라고할수있습니다.
xinetd 타입의 데몬
xinetd 데몬은 inetd 데몬의 단점을 개선한 확장된 데몬입니다.
현재 리눅스의 대부분에서 사용합니다.
xinetd 데몬은 슈퍼 데몬이라고 불리며 다른 하위 데몬을 지배하는 상위 데몬입니다.
직접 서비스를 하지않고 외부에서 특정 서비스를 요청할경우에만 자신의 하위 데몬을 구동시킨후에
그 데몬이 그 서비스를 수행할수있게끔 연결시켜줍니다.
서비스 요청이 종료되면 하위데몬도 종료됩니다.
-
xinetd 데몬관련 서비스를 요청하면 처음 연결시간이 Standalone 데몬에 비해 오래 걸립니다.
-
사용 빈도가 높지 않은 서비스에 xinetd 을 사용하는것을 권장합니다.
자주 사용되는 데몬을 xinetd 데몬으로 설정하면 데몬을 구동, 종료 하는 과정을 계속 반복해야 하므로 시스템에 부담을 주기 때문입니다.
</br></br></br></br>
결론
데몬은 시스템 백그라운드에서 활동중인 프로세스
Reference
https://m.blog.naver.com/PostView.nhn?blogId=hmin011&logNo=150146472438&proxyReferer=https:%2F%2Fwww.google.co.kr%2F
https://blogger.pe.kr/770