Daemon Process
📌 Daemon Process란?
info
Daemon Process는 리눅스/유닉스 운영체제에서 사용자 개입 없이 백그라운드에서 지속적으로 동작하는 프로세스를 의미한다.
시스템 부팅 시 자동으로 실행되며, 클라이언트의 요청에 응답하거나 특정 작업을 주기적으로 수행한다.
✅ Daemon 프로세스의 특징
- 백그라운드 실행 (
&
기호 또는 systemd, init 등으로 시작) - 부모 프로세스가
init(1)
또는systemd(1)
- 로그인 세션에 의존하지 않음
- 이름이
d
로 끝나는 경우가 많음 (ex.sshd
,httpd
,crond
)
✅ 대표적인 Daemon 프로세스 예시
이름 | 설명 |
---|---|
sshd |
SSH 접속을 관리 |
httpd |
Apache HTTP 서버 |
crond |
crontab 기반 스케줄링 |
systemd |
시스템 부팅 및 서비스 관리 |
mysqld |
MySQL DB 서비스 프로세스 |
✅ Daemon 프로세스 확인 방법
ps -ef | grep 'd$'
또는 systemd 기반 서비스 확인:
systemctl list-units --type=service
✅ Daemon 작성 (C 예시)
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
int main() {
pid_t pid = fork();
if (pid < 0) exit(EXIT_FAILURE);
if (pid > 0) exit(EXIT_SUCCESS); // Parent 종료
// 자식 프로세스는 세션 리더가 되고 터미널 분리
setsid();
while (1) {
// 백그라운드 작업 수행
sleep(30);
}
return 0;
}
✅ 관련 개념
- Foreground Process: 사용자와 직접 상호작용하는 터미널 기반 프로세스
- Background Process: 터미널에서
&
로 실행되며, 사용자와 직접적 인터랙션 없음 - Service Manager: systemd, init.d, launchd 등 데몬의 실행과 상태를 제어
댓글남기기