본문 바로가기

리눅스-기본 개념

systemd

개요

systemd(system daemon)란 시스템을 부팅한 뒤 가장 먼저 생성되어 System and Service Manager로서 시스템의 부팅 및 서비스를 관리해주는 데몬이다. RHEL7부터 기존에 사용되던 init을 대체하였으며, 용도에 따라 다양한 유형의 유닛으로 시스템을 관리한다. PID는 1, 부모 프로세스가 없으므로 PPID도 1이다. 

 

  • 데몬(daemon) : 백그라운드에서 동작하는 시스템으로 터미널이나 사용자가 없어도 움직인다.

 

systemd 주요 디렉토리

경로 설명
/etc/systemd/system 유닛의 환경 설정 파일이 위치하는 디렉토리. 시스템 관리자가 생성, 관리하는 유닛들이 저장된다.
/run/systemd/system 런타임(Runtime) 상태일 때 임시로 유닛 파일을 저장하는 디렉토리. 재부팅시 삭제된다.
/usr/lib/systemd/system 시스템에서 사용되는 service, target, socket 유닛 파일이 위치하는 디렉토리

 

1. systemd의 구조

1.1. 유닛(unit)

systemd는 리소스를 다양한 유형의 유닛(unit)들로 나눠서 관리한다.

사용 가능한 유닛의 종류로는 service, socket, target, device, mount, automount, swap, timer, path, slice, scope가 있다.

 

주요 유닛

유형 설명
service 관련 파일명이 “.service”로 끝나며 서버에서 제공하는 서비스가 해당한다. 보통 데몬(deamon)이라 부른다.
target 관련 파일명이 “.target”으로 끝나며 부팅 레벨 , 특정 동기화 지점과 같이 유닛을 그룹화할 때 사용한다.
socket 관련 파일명이 “.socket”으로 끝나며 프로세스 간 통신에 사용되는 IPC 소켓을 만든다.
path 관련 파일명이 ‘.path’ 로 끝나며며 특정파일 시스템이 변경될때까지  서비스의 활성화를 지연 시킬때 사용된다. 프린팅 시스템의 스풀 디렉터리를 사용하는 서비스에 사용된다.

 

1.2. 서비스(service)

부팅과 동시에 실행이 되며 “.service”로 끝난다. systemctl으로 제어가 가능하다.

 

서비스 상태에 대한 주요 값

상태값 설명
loaded 프로세스 로드되는 유닛의 환경 설정 파일로 나타낸다.
enabled 부팅 시에 활성화 상태
disabled 부팅 시에 비활성화 상태
active(running) 프로세스가 하나 또는 그 이상의 프로세스에 의해 동작 중인 상태
active(exited) 일회성 프로세스를 성공적으로 실행한 상태
active(waiting) 동작 중인 상태이나 특정 이벤트에 의해 대기 중인 상태
inactive(dead) 프로세스가 종료된 상태
static 활성화가 되지는 않지만, 활성화되는 다른 유닛에 의해 활성화가 가능한 상태



1.3. 타깃(target)

타깃은 부팅 레벨, 특정 동기화 지점과 같이 유닛을 그룹화 할때 사용한다.

 

주요 target

Target 설명
poweroff.target 시스템을 종료시키는 타깃
rescue.target 응급복구 모드(init runlevel 1)로 전환하는 타깃
emergency.target rescue.target과 유사하고, /를 읽기 전용(read only)로 마운트 한다.
multi-user.target 콘솔 모드 (init 체제의 runlevel 3)로 전환하는 타깃으로 텍스트 기반 로그인만 지원한다.
graphical.target X Window(init체제의 runlevel 5)모드로 전환하는 타깃으로 텍스트 기반 로그인 이외에 X기반의 로그인을 지원한다.
reboot.target 재부팅시키는 타깃이다.



1.4. 런 레벨(run level)

시스템 관리를 위해 서비스 실행에 관련된 명령을 단계별로 구분하여 적용하는 것을 의미한다.

systemd(systemctl) 가 도입되고 나서 run level 은 target 이라는 용어로 변경되었고 target 을 설정하고 반영하는 명령어도 변경되었다.

 

런레벨

레벨 설명 특징
0 Hlat 시스템 중지, 기본값으로 설정 불가
1 Single user mode 단일 사용자 모드
바로  root 계정으로 접속한다.
시스템 관리 및 복구 목적으로 하는 모드로 네트워크,  파일 공유 같은 서비스가 제공되지 않는다
2 Multiuser, without NFS 네트워크를 사용하지 않는 다중 사용자 모드 런레벨 3에서 네트워크를 사용하지 않는 모드
3 Full multiuser mode 다중 사용자 모드
4 Unused 사용자가 정의해서 사용 가능한 모드
5 X11 X윈도우를 사용하는 다중 사용자 모드
6 Reboot 시스템 재부팅, 기본값으로 설정 불가

 

1.5. 소켓(socket)

소켓은 클라이언트 프로그램과 서버 프로그램 간의 연결을 설정하여 구조화된 방식으로 데이터를 송수신할 수 있도록 하는 데 사용된다.

 

'리눅스-기본 개념' 카테고리의 다른 글

특수 권한  (0) 2023.08.31
Linux 파일 시스템 권한  (3) 2023.08.31
프로세스  (0) 2023.08.31
링크(link)  (2) 2023.08.31
i-node  (0) 2023.08.31