Skip to content

Daemon

멀티태스킹 운영 체제에서 데몬(daemon, 발음: 데이먼/'deɪmən/ 또는 디먼 /'dimən/[1])은 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다. 시스템 로그를 남기는 syslogd처럼 보통 데몬을 뜻하는 ‘d’를 이름 끝에 달고 있으며, 일반적으로 프로세스로 실행된다.

데몬은 대개 부모 프로세스를 갖지 않으며, 즉 PPID가 0이며, 따라서 프로세스 트리에서 init 바로 아래에 위치한다. 데몬이 되는 방법은 일반적으로 자식 프로세스를 포크(fork)하여 생성하고 자식을 분기한 자신을 죽이면서 init이 고아가 된 자식 프로세스를 자기 밑으로 데려가도록 하는 방식이다. 이러한 방법을 ‘fork off and die’라 부르기도 한다.

시스템은 시동할 때 데몬을 시작하는 경우가 많으며, 이런 데몬들은 네트워크 요청, 하드웨어 동작, 여타 프로그램에 반응하는 기능을 담당하게 된다. 그 밖에도 몇몇 리눅스에 있는 devfsd처럼 하드웨어 설정이나, cron처럼 주기적인 작업을 실행하는 등 기타 다양한 목적으로 사용된다.

About

Richard Stevens의 Unix Network Programming를 인용하여 unix daemon의 조건을 다음과 같이 언급하고 있다.

  • 열려있는 모든 File descriptor를 닫는다.
  • 현재 작업 디렉토리를 변경한다
  • 파일 생성시 마스크를 재설정한다
  • 백그라운드로 실행된다
  • 프로세스 그룹에서 분리한다
  • 터미널의 I/O 시그널을 무시한다
  • 제어 터미널과 분리한다
  • 다음과 같은 상황을 올바르게 다룰수 있다
  • System V init 프로세스에 의해 시작된다.
    • SIGTERM 시그널에 의해 종료된다
    • 자식 프로세스는 SIGCLD 시그널을 발생시킨다

List of Daemon

데몬명

설명

Network Manager

자동으로 최대 사용 가능한 연결에 네트워크 연결을 스위칭

acpid

커널로부터 ACPID 이벤트를 받아서 처리

anacron

downtime까지 남겨진cron 작업을 실행

apmd

배터리 상태를 모니터링 및 기록(syslog(8))

atd

백그라운드 작업을 수행하거나 예약 명령을 처리

autofs

서버의 파일을 읽을 때 자동으로 마운트 수행

crond

리눅스에 등록된 명령어를 정기적으로 수행

diskdump

시스템 충돌이나 diskdump 모듈 초기화시 덤프파일 저장

echo

echo의 캐릭터 값을 클라이언트로 전송

eklogin

Kebelos 5를 이용하여 암오화 시키는 데몬

gpm

텍스트기반의 리눅스 어플리케이션에 마우스 서포트

gssftp

Kerberized ftp 서버 케베로스 5를 이용하여 암호화

haldeamon

소스로부터 하드웨어에 대한 정보를 모으고 유지

iptables

리눅스 방화벽 iptables 데몬

irqbalance

프린터 작업 분배

idsn

ISDN 서비스 설정

klogin

Kebelos 5 인증, dsd타입 rlogin 세션 설정

kudzu

하드웨어 검색 데몬

mdmonitor

RAID 모니터링과 관리 담당

mdmpd

다중 경로 디바이스 모니터링과 관리

messagebus

시스템 이벤트나 다른 메시지를 알려주는 역할

netdump

netconsol과netcrashdump 요소들을 초기화

netfs

NFS, SMB/CIFS, NCP 등을 마운트/언마운트

netplugd

Non-static 네트워크 인터페이스 관리

network

부팅시 모드 설정된 네트워크 인터페이스를 활성화 또는 비활성화

nfs

tcp에서 파일공유, 리눅스에서 nfs 서버를 운영시 사용

nfslock

nfs서버 운용시 다수 사용자들의 접근을 방지할 때 사용

NTPD

ntp V4 데몬, 시간 동기화시 사용

portmap

RPC 연결관리 데몬(NFS, NIS)

psacct

프로세스에 대한 설명을 시작/ 중지시 사용

rawdevices

raw 디바이스를 블록 디바이트에 맵핑

rpcgssd

유저레벨 데몬 시작, NFSv4 클라이언트를 위하여 RPCSEC 관리

rpcidmapd

유저레벨 데몬, 유저 uid와 gid값을 매핑

rsync

동기화시 사용되는 데몬

saslauthd

인증된 요청을 핸들링하는 데몬

sendmail

메일서버 데몬

smartd

자가 모니터링과 리포트 기능

snmpd

단순 네트워크 관리 프로토콜 데몬

snmptrapd

snmpd trap 데몬

sshd

open-ssh 데몬

syslog

로그 데몬

time

RFC 868 타임 서버 데몬

uncserver

uncserver 설정

winbind

SAMBA winbind 데몬

xfs

X-window 폰트 데몬

xinetd

슈퍼 데몬 각종 서비스를 관리

ypbind

NIS 데몬

See also

Favorite site

Programming

References


  1. Things_to_know_when_creating_Daemon.pdf