Goomba

[System] 데몬(Daemon) 서비스의 개념

  • etc

데몬(Daemon)은 사용자와는 무관하게 동작하며,
시스템 혹은 서비스를 위해 상시/이벤트 기반으로 동작하는 프로세스를 말합니다.

일반 프로그램과의 차이

구분일반 프로그램데몬
실행 주체사용자 실행시스템 실행
실행 목적작업 수행 후 종료요청 대기 및 반복 수행
실행 시간일회성길거나 지속적
입력 방식터미널 또는 입력IPC, 네트워크, 이벤트 등
종료 방식작업 수행 후 종료시스템 종료 시 종료

단순 백그라운드 프로세스와의 차이

리눅스에서 &로 프로그램을 실행할 수 있는데, 이것과는 차이가 명확합니다.

구분백그라운드 실행데몬
터미널 종속성있음없음(독립)
시스템 관리없음systemd 등에서 관리
자동 시작불가가능
로그 관리직접 처리journald/syslog/dlt 등 사용
서비스 개념없음있음

데몬의 필요성

데몬은 기본적으로 항상 실행 중이고, 요청에 따라 동작합니다.

sshd, udevd, dbus-daemon 등으로 다양합니다.

  • 클라이언트-서버 모델에서 서버와 상시적으로 연결되어 클라이언트의 요청을 처리할 수 있도록 준비할 수 있습니다.

데몬의 동작 방식

단계설명
초기화필요 리소스 준비
대기이벤트/요청이 올 때까지 대기
처리요청에 따라 작업 수행
  • 데몬은 위와 같은 동작을 계속해서 반복하도록 백그라운드에서 실행되고 있습니다.