CS/Linux

[Linux] 데몬(Daemon)이란?

3omh4n 2022. 5. 7. 01:07

FTZ level4를 풀다가 /etc/xinetd.d 폴더에 관련된 내용이 나와 검색해보던 중 xinetd데몬의 내용이 나와 데몬과 관련된 내용을 정리하고 넘어가려고 한다.

데몬(Daemon)??

리눅스 시스템이 처음 가동될 때 실행되는 백그라운드 프로세스들의 일종으로, 메모리에 상주하다가 요청이 오면 즉시 응답하도록 하는 대기 프로세스이다. 여기서 핵심은 백그라운드 프로세스라는 것이다.

 

데몬 종류 - standalone & xinetd

standalone

독단적으로 움직이는 방식으로, 항상 단독으로 메모리에 상주하고 있다가 요청이 오면 바로바로 처리해준다. 빠르다는 장점이 있지만, 메모리에 계속 상주하고 있어야 되므로 메모리를 많이 잡아먹는다.

→ 요청이 많은 프로세스는 항상 상주하고 있지 않는다면, 그만큼 메모리에 올렸다 내렸다 오래걸리므로 항상 상주하도록 한다. 즉, 요청이 많은 프로세스는 standalone방식을 사용하는 것이 좋다.

 

이 프로세스들은 /etc/init.d/ (= /etc/rc.d/init.d) 디렉토리에 위치해 있다. 이 폴더에는 standalone방식으로 데몬을 구동시킬 수 있는 스크립트를 저장하고있다.

/etc/init.d 파일은 init 프로세스(시스템 초기화 프로그램 - 부팅시 작동하는 프로그램)가 해야할 일을 기록한 파일이다. 이 때, /etc/rc0.d, /etc/rc1.d 처럼 rc(N).d 이렉터라가 있는데 이 숫자는 런레벨을 의미한다고 한다.

 

우선 이번 정리는 FTZ를 풀던 과정에서 모르는 내용을 정리한 것이므로 더 깊은 내용은 다음에 더 정리하려 한다.

 

 

xinetd(슈퍼 데몬)

슈퍼 데몬이라고도 하며 다른 데몬들의 상위에 존재한다. 이 데몬은 항상 상주해있지 않고, xinetd에 서비스를 요청해 서비스 데몬을 띄우는 방식이다. xinetd는 네트워크 데몬을 가동하는 슈퍼데몬으로, standalone 방식으로 대기하고 있다가 요청이 들어오면 xinetd에서 서비스를 띄운다.

xinetd = /etc/xinetd.conf(설정파일) + /etc/xinetd.d + /etc/rc.d/init.d/xinetd(standalone데몬)

/etc/xinetd.conf

xinetd데몬의 설정파일로, includedir에는 각각의 서비스에 해당하는 세부 설정들을 정의한 파일들이 있다.

service telnet {		//서비스 이름
	flag:				//서비스 포트가 사용중인 경우 해당 포트의 재사용 허가여부
    socket_type:		//TCP/IP 프로토콜 선택
    wait:				//서비스가 연결된 상태에서 다른 요청이 오면 즉각 응답할지의 여부
    user:				//**해당 데몬이 이 부분의 권한으로 실행된다**
    server:				//**서비스가 실행될 때 xinetd에 의해서 실행될 데몬파일**
    log_on_failure:		//로그인 실패 시 기록 여부
    disable:			//데몬의 비활성화 여부
}

 

참고

https://compunication.tistory.com/entry/%EB%8D%B0%EB%AA%ACDaemon%EC%9D%B4%EB%9E%80

https://hec-ker.tistory.com/325 → 깊은 내용 관련