초기화 데몬

데몬이란

데몬(Daemon)은 리눅스 및 유닉스 계열 운영체제에서 백그라운드에서 실행되는 프로세스로, 사용자가 직접 상호작용하지 않아도 시스템에서 특정 작업을 수행하거나 다른 프로그램 및 서비스에 필요한 기능을 제공한다.

데몬 프로세스의 이름은 일반적으로 d로 끝나는 공통점이 있다. 예로 들면 sshd, httpd, systemd 등이 있다.

데몬은 일반적으로 시스템이 부팅될 때 초기회 데몬에 의해 시작되어, 백그라운드에서 실행되며, 사용자의 요청이 있을 때 적절한 작업을 수행하고, 작업 완료 후에는 대기 상태를 유지한다.

데몬의 어원은 그리스 신화에서 유래한 것으로, 보이지 않지만 도움을 주는 영혼이나 존재를 뜻한다. 컴퓨터과학에서도 이와 비슷하게 시스템을 보조하는 보이지 않는 프로그램이라는 의미로 데몬이라는 용어를 사용하고 있다.

리눅스 초기화 데몬의 변천사

(1) System V init 데몬이라고도 불린 전통적 초기화 데몬을 사용
(2) 이벤트 기반의 Upstart 초기화 데몬을 사용
(3) 이후 systemd 라는 초기화 데몬을 사용하고, 현재의 기본값으로 굳어짐

초기화 데몬 비교

구분 전통적 초기화 데몬 업스타트 초기화 데몬 systemd
개념 리눅스/유닉스 초기화 시스템의 가장 오래된 방식으로, 스크립트 기반의 초기화 데몬. 이벤트 기반 초기화 시스템으로, SysVinit의 단점을 개선하기 위해 개발. 현대적 초기화 시스템으로, 병렬 처리를 통해 효율성을 극대화.
출시 1980년대 2006년 2010년
작동방식 런레벨(runlevel)을 기반으로 순차적으로 스크립트를 실행. 이벤트(event)를 기반으로 서비스를 시작/중지. 유닛(unit)과 타깃(target)을 기반으로 병렬적으로 서비스 시작/중지.
런레벨 0~6의 고정된 런레벨로 실행 단계 관리. 런레벨 대신 이벤트 기반 처리. 타깃(target)으로 런레벨을 대체하며 유연한 단계 설정 가능.
장점 오랜 시간 표준으로 사용. 복잡한 스크립트를 간단한 설정 파일들로 대체. 이벤트 기반으로 유연한 서비스 관리. 병렬 처리, 효율적 자원 관리, 서비스 의존성 처리.
단점 느린 부팅 속도, 복잡한 스크립트 관리. 일부 배포판에만 사용됨 기존 시스템과의 호환성 문제 발생 가능, 초기 러닝 커브.
현재 거의 사용되지 않음. 대부분 systemd로 대체됨. 현대 리눅스 배포판에서 표준 초기화 시스템

Systemd 프로세스

systemd 란

-커널에게 제어권을 받는 초기화 데몬이자
-커널이 실행시키는 첫 번째 사용자 프로세스 (모든 프로세스의 조상 프로세스)
-리눅스 운영체제의 시스템 및 서비스 관리자
-역할 : 사용자 환경 준비, 사용자 프로세스 관리, 장치 관리, 로그인 관리 등 다양한 유틸
-부팅때부터 시작되어 계속 수행되며 시스템 운영을 관리하고, 셧다운까지 처리한다.

systemd 의 기능

기능 설명
초기화 - 커널 초기화 이후의 초기화 과정 수행
파일 시스템 마운트 - /etc/fstab 파일을 읽어 마운트 유닛 파일을 생성하고, 파일 시스템을 마운트 함
시스템 서비스 활성화 - 부팅 과정에서 실행될 서비스 활성화
- 시스템 서비스를 병렬로 시작시킴
- 온디맨드 활성화 : 필요한 데몬만 필요한 시점에 활성화
의존성 해결 - 서비스 간의 의존성을 체계적으로 관리하고 해결
로그인 서비스 시작 - 시스템 부팅시 자동 실행되는 데몬으로, 사용자 로그인을 처리
시스템 상태 모니터링 - 부팅된 시스템 상태를 모니터링하고 문제 식별 및 해결을 진행.
- 시스템 상태의 스냅샷을 저장한다.
데몬 관리 실행 중인 데몬 프로세스를 관리함

systemd 의 장점

-부팅 속도의 증가
-자원 사용 효율화
-보안 강화
-안정적이고 신뢰성 있는 시스템 관리

Reference

UNIX시스템 - 김희천,김진욱 저