Search

[2장 프로세스 관리(기초)]8.데몬

Publish Date
Category
Status
Done
1 more property
데몬
데몬의 개념을 이해하고 좀비 프로세스, 고아 프로세스와 차이점을 알아본다.
Table of Content

데몬 (Daemon)

데몬은 백그라운드에서 독립적으로 실행되는 상주 프로세스이다. 시스템 시작 시 실행되어 시스템 종료 시까지 지속적으로 작동한다. 시스템 유지 및 관리를 위해 지속적으로 실행되어야 하는 프로세스에 적합하다. (예: 네트워크 서비스, 스케줄링 데몬(Cron), 로깅 서비스 등)
시스템 서비스(예: sshd, httpd)를 제공하기 위한 프로세스.
단말(TTY)에 연결되지 않으며 독립적인 세션을 갖는다.
부모 프로세스 종료 후 init 프로세스(PID=1)가 부모로 설정된다.
데몬 프로세스는 ps ajx 명령어를 사용해 확인할 수 있다.
# ps ajx
Shell
복사
실제로는 데몬의 부모 프로세스가 init(PID 1)로 설정된다. PPID가 0으로 나타나는 이유는 특정 상황에서 커널이나 컨테이너화된 환경에서의 표시 방식 때문이다.
세션 ID(SID)는 PID와 동일하다.
TTY 값이 '?'로 나타나는 것은 해당 프로세스가 단말에 연결되지 않았음을 의미한다. 데몬은 독립적으로 실행되며, 단말 연결이 필요하지 않기 때문에 '?'로 표시된다.
일반적으로 SIGHUP 시그널은 단말 연결이 끊겼을 때 프로세스를 종료하는 용도로 사용된다. 하지만 데몬에서는 단말이 존재하지 않으므로, SIGHUP 시그널을 설정 파일을 다시 읽거나 재로드하는 기능으로 활용한다.

마무리

좀비 프로세스는 자원 낭비와 성능 저하를 초래할 수 있으므로 부모 프로세스의 설계를 점검해야 한다.
고아 프로세스는 커널에서 자동으로 관리되므로 특별한 문제가 없다.
데몬은 시스템의 핵심 서비스로 지속적인 백그라운드 작업에 사용된다.
구분
좀비 프로세스
고아 프로세스
데몬
발생 원인
자식 프로세스 종료 후 부모가 상태를 회수하지 않음
부모 프로세스가 먼저 종료됨
시스템 서비스 제공 목적으로 독립적으로 실행
상태
종료된 상태
실행 중
실행 중
부모 프로세스
원래 부모 프로세스
init 프로세스(PID=1)로 변경됨
init 프로세스(PID=1)로 변경됨
단말 연결
있음
있음
없음
관리 주체
부모 프로세스
커널(init 프로세스)
init 프로세스
문제점
자원 낭비 및 성능 저하 가능성
시스템 자원에 큰 영향 없음
없음
용도/의미
비정상 종료 상태
정상적인 프로세스 관리
지속적인 서비스 제공
예시
상태를 회수하지 않은 프로세스
부모 종료 후 실행 중인 프로세스
sshd, httpd, cron 등 시스템 데몬
Search
Main PageCategoryTagskkogggokkAbout MeContact