데몬(Daemon) 프로세스

데몬 프로스세란?

데몬 프로세스가 무엇인지, 실행 방식에는 무엇들이 있는지 알아봅니다.


Daemon Process

백그라운드에서 시스템과 관련된 활동을 하는 프로세스

  • 보이지 않는곳 (백그라운드) 에서 사용자가 신경쓰지 않게 해준다라는 뜻에서 Daemon이라는 이름이 붙여졌다.
    • 맥스웰이 언급한 보이지 않는곳에서 분자들을 골라주는 유령에서 영감을 받아 이런 이름이 만들어졌다고 한다.
  • Init 프로세스를 부모로 두고 있고, 제어하는 터미널이 없는 프로세스를 칭한다.

  • Init 바로 아래에 위치한다.
    • fork후 부모는 바로 종료되며, fork된 자식은 Init의 자식으로 입양된다.
    • 이런 방식을 fork off and die 라고 부르기도 한다.
  • 네트워크, 하드웨어 요청에 응답하거나 프로그램에 반응하는 기능을 한다.
    • 대부분의 데몬이 시스템에 관련된 작업을 하는 경우가 많다.
    • 이런점 때문에 시스템이 가동될때 같이 시작되는 경우가 많다.
  • 종류에는 apache, ftpd, telnet 등등이 있다.
  • 일반적으로 프로세스 이름 뒤에 d자가 붙는다.
    • httpd, syslogd, ftpd

일반 Daemon

  • 백그라운드에서 작동한다.
  • 평소에 메모리에 상주하지만, CPU을 할당받지 않고 (idle 상태) 호출될 경우에만 작동한다.
  • 사용자가 직접 제어하지 않는다.

Internet Super Daemon

다른 데몬들을 관리하는 데몬

  • 사실 데몬들이 항상 메모리에 상주하는것은 자원 낭비이다.
  • 이런 부분을 해결하기 위해서 슈퍼 데몬 이 존재한다.
  • 슈퍼 데몬에 의해 관리되는 데몬들은, 필요한 경우에만 메모리에 적재 된다.

실행방식

Stand alone , Xinetd

Stand alone

독립적으로 실행되는 모드이다.

  • 항상 메모리에 상주한다.
  • 요청이 있을때 언제나 응답이 가능하므로, 빠른 응답이 가능하다.
  • 부팅할때 자동적으로 같이 실행되는 데몬들은 Standalne 방식의 데몬이다.
  • 슈퍼 데몬Standalone 모드이다.
  • 대표적으로는 apache데몬, mysql데몬, sendmail데몬 처럼 항시 대기해야 하는 데몬들이 있다.

Xinted (eXtended Internet Service Daemon)

슈퍼 데몬에 의해서 관리되는 방식

  • 평소에 메모리에 상주해있지 않는다.
  • 필요한 경우에만 메모리에 적재되어 자원 낭비를 줄여 서버의 부담을 줄여준다.
  • 응답속도는 상대적으로 느리다.
  • 대표적으로는 Telnet 데몬, ftp 데몬, shell 데몬이 있다.
    • 예시 : 요청이 들어오면 대기하고 있던 슈퍼데몬Telnet데몬을 불러와 서비스를 제공한다.

Reference

  • https://ko.wikipedia.org/wiki/%EB%8D%B0%EB%AA%AC_(%EC%BB%B4%ED%93%A8%ED%8C%85)
  • https://geundi.tistory.com/43
  • https://blogger.pe.kr/770
  • https://hack-cracker.tistory.com/92
  • https://m.blog.naver.com/gmasisy1/220644311274