데몬(daemon) 이란?

데몬이란 리눅스 시스템이 처음 가동될 때 실행되는 백그라운드 프로세스의 일종이며, 사용자의 요청을 기다리고 있다가 요청이 발생하면 이에 적절히 대응하는 리스너와 같은 역할을 한다. 즉, 메모리에 상주하면서 특정 요청이 오면 즉시 대응 할 수 있도록 대기중인 프로세스를 말한다. MS윈도우의 서비스(Service)와 유사하고 실제로 '서비스'라고 부르기도 하다. 보통 리눅스 시스템의 1번 프로세스인 init(PID=1)이 실행하고, 데몬 프로그램의 명령어는 'd'로 끝난다. (ex. ftpd, mysqld, httpd...)


리눅스 시스템은 주로 서버로서의 역할을 많이 수행하는데 (요즘은 데스크탑으로도 많이 쓴다만...) 가령, ftp서버, 웹서버, DB서버 등의 역할을 하는 시스템이라면, 해당 데몬이 실행중이어야 사용자의 요청을 처리할 수가 있다.


리눅스에서 데몬을 실행하는 방법은 크게 두가지가 있다. standalone 방식과, super daemon을 통하는 방식이 그것인데, 일반적으로 빈번히 사용하는 데몬을 standalone 방식으로, 자주 사용하지 않는 데온을 super daemon방식으로 실행한다. 만약 리눅스 서버를 웹서버로 사용한다면, 사용자의 웹 서비스 요청이 매우 빈번히 일어날 것이고, 따라서 'httpd' 와 같은 웹서버 데몬은 standalone 방식으로 실행한다.



standalone type daemon

- 독립적으로 수행되며 서비스 요청에 응답하기 위해 항시 메모리에 상주하는 데몬이다.

- 데몬의 실행 스크립트 위치 : "/etc/inetd.d/" 



inetd type daemon

inetd라고 하는 특별한 데몬에 의해 간접적으로 실행되는 데몬이다. 보안상의 이유로 xinetd로 수정되었으며 슈퍼데몬이라고도 한다. inetd에 어떠한 요청이 들어오면 inetd는 해당되는 데몬을 메모리에 올리고 요청을 처리하게 된다.

데몬의 실행 스크립트 파일 : "/etc/xinetd.d/" 



Ubuntu Server에서의 데몬

Ubuntu 8.10기준으로 Server 버전이든 Desktop 버전이든 기본적으로 Super daemon이 설치되지 않는다. apt-get명령어를 이용한 패키지 설치를 통해 설치할 수 있다.


$ sudo apt-get install netkit-inetd


Ubuntu에서는 프로그램을 실행하기 위해 특정 프로그램에 의존해하는 것을 지향하기 때문에, 기존과 같이 super daemon을 default로 사용하지 않는것 같다. Ubuntu 패키지 DB에서 제공하는 데부분의 프로그램들이 standalone 타입으로 설치되도록 설정되어 있으며(ex. sshd), 기타 외부 프로그램들도 대부분 standalone으로 설정할 수 있다고 한다. 만약 super daemon이 꼭 필요하다면 위의 명령어로 실행할 수 있고, standalone 방식과 super daemon방식을 동시에 사용할 수 있으므로, 사용자 취향에 맞게 사용하면 될 듯하다.



참고사이트 : http://blog.naver.com/yhpeople?Redirect=Log&logNo=20011282102

+ Recent posts