개발자라면 service와 daemon에 대해 이해하는 것이 중요합니다.
둘 다 시스템에서 특정 작업을 백그라운드에서 실행하는 프로그램을 지칭하지만, 약간의 차이가 있습니다.
1. Service (서비스)
- 정의: 서비스는 시스템에서 특정 작업을 수행하는 데 사용되는 프로세스입니다. 사용자가 직접 요청하지 않아도 특정 트리거에 의해 실행되며, 일반적으로 백그라운드에서 실행됩니다.
- 특징:
- 사용자가 직접 인터페이스를 통해 접근하지 않아도, 시스템이나 다른 프로그램에 의해 실행됩니다.
- 서비스는 서버-클라이언트 모델에서 자주 사용되며, 클라이언트가 요청하면 응답을 제공합니다.
- Windows와 Linux 모두에서 사용됩니다.
- 운영체제별 동작:
- Windows: Windows Services는 백그라운드 작업을 처리하며, 제어는 서비스 관리 도구(services.msc)로 가능합니다.
- Linux: 서비스는 systemd, init, 또는 upstart와 같은 서비스 관리 시스템으로 관리됩니다.
- 명령어 예시: sudo systemctl start nginx, sudo service apache2 stop.
2. Daemon (데몬)
- 정의: 데몬은 일반적으로 백그라운드에서 실행되며, 사용자의 명령 없이 시스템 부팅 시 시작하거나 특정 이벤트에 의해 실행되는 프로그램입니다.
- 특징:
- Unix 계열 시스템에서 주로 사용됩니다.
- 사용자의 세션(터미널)과 독립적으로 실행됩니다.
- 파일 이름에 종종 "d"로 끝납니다. 예: sshd(SSH Daemon), httpd(Apache HTTP Daemon).
- 작동 방식:
- 데몬은 부모 프로세스를 종료한 후 스스로 백그라운드에서 실행되도록 만들어집니다.
- 시스템 부팅 시 시작되거나, 특정 트리거에 의해 동작합니다.
- 데몬은 주로 서버 애플리케이션(예: 웹 서버, 데이터베이스 서버 등)에서 사용됩니다.
- 예제
- HDMI-CEC 데몬 (hdmid):
- 역할: HDMI 포트 신호 감지, 외부 장치와의 상호작용(예: PlayStation).
- 예시 동작: PS5 전원을 켜면 TV도 자동으로 켜지고 입력 포트를 전환.
- 네트워크 관리 데몬 (networkd):
- 역할: Wi-Fi 신호 스캔, 연결 상태 유지, 이더넷 포트 활성화.
- 특징: 데몬이 독립적으로 작동하여 TV의 네트워크 연결을 지속적으로 확인.
- DRM 데몬 (drm-daemon):
- 역할: 스트리밍 서비스(Netflix, Prime Video 등)의 콘텐츠 보호 및 라이선스 관리.
- 특징: 백그라운드에서 디지털 권한 처리.
- HDMI-CEC 데몬 (hdmid):
차이점
특징 | Service | Daemon |
플랫폼 | Windows, Linux | 주로 Unix/Linux |
실행 방식 | systemctl, service 명령으로 제어 가능 | 백그라운드에서 지속 실행 |
주요 사용 사례 | 네트워크 서버, 데이터베이스, 스케줄러 | 웹 서버, SSH 서버 등 |
세션 독립성 | 사용자와 독립적으로 작동 가능 | 터미널 세션과 완전히 독립적 |
- Service는 사용자 요청을 처리하며 앱 또는 UI와 긴밀히 연동.
- Daemon은 시스템 초기화, 하드웨어 관리, 네트워크 관리 등 사용자와 독립적인 작업을 처리.
'공부 > 개발' 카테고리의 다른 글
Enlightenment Foundation Libraries (EFL): 정의, 목적, 구성요소, 사용처 (1) | 2025.01.15 |
---|---|
프로세스와 스레드의 정의와 특징 (0) | 2025.01.13 |
NUI App, Web App, Native App 구분, 특징, 장단점 (0) | 2025.01.09 |