본문으로 바로가기

Systemd

category MLOps/Linux 2022. 1. 26. 21:44

1. Systemd

1) 특징

- init 프로세스 대신 systemd라는 데몬 프로세스로 대체

- init 프로세스에 대한 호환성 제공

- systemd 유닛 사용

- 시스템 부팅 시 서비스 병렬 시작

- 의존성 기반의 서비스 제어

- systemctl을 사용한 사용자 정의 명령어 미지원

- 시스템 종료 시 실행중인 서비스만 중지

- 서비스에 5분의 timeout 적용

- 통합 로그 관리 (systemd-journald)

init프로세스
- 부팅 과정에서 커널에 의해 실행되고 각종 서비스를 제공하는 다른 프로세스를 동작시키는 역할 수행
- PID 1번
- 순차적으로 스크립트를 실행

 

2) systemd 유닛

- systemd 유닛 단위로 시스템 관리

- /usr/lib/systemd/system: unit의 기본 경로

- /etc/systemd/system: 관리자가 수동으로 관리하는 경로

- /run/systemd/system: 임시로 사용할 unit의 경로

 

3) systemd 유닛 종류

- service unit: 서비스 (사용자 또는 다른 시스템에게 제공하는 서비스를 나타냄)

- device unit: 하드웨어 장치 관리 유닛 (하드웨어가 추가되거나 디스크 파티셔닝 시, 해당 이름으로 유닛 생성)

ex) /dev/sda1 -> dev-sda1.device

- mount unit: 마운트 관리 유닛

ex) /mnt/mountinit -> mnt-mountinit.mount

- swap unit: 스왑 영역을 관리하는 유닛 (스왑 영역으로 사용되는 파티션 장치 또는 파일 이름)

- target unit: 타켓 (부팅모드)을 관리하는 유닛 (init 프로세스의 run level과 매핑되는 유닛)

- path unit: 파일시스템의 경로를 관리하기 위한 유닛

- timer unit: 주기적인 작업을 관리하기 위한 유닛

- socket unit: systemd에 의해 제어되는 IPC, 네트워크 소켓, FIFO에 대한 정보를 담고 있음

 

2. systemctl 사용

- systemd 유닛을 관리하는 명령

# 유닛의 실행 (active) 상태 확인
systemctl list-units
systemctl list-units --type <unit-name> # ex) service
systemctl list-units --all

# 유닛의 활성화 (enabled) 상태 확인
systemctl list-unit-files

# 유닛의 의존성 확인
systemctl list-dependencies <unit-name>

# 유닛의 상태 확인
systemctl status <unit-name>

# 유닛 제어 명령 사용 방법
# systemctl <sub-command> <unit>

systemctl start <unit>
systemctl stop <unit>
systemctl status <unit>
systemctl reload <unit>
systemctl restart <unit>

# 활성화 비활성화
# enable이면 부팅 시 유닛 실행 (active)
systemctl enable <unit>
systemctl disable <unit>

# 실행 (active) 유무
systemctl mask <unit>
systemctl unmask <unit>

 

 

'MLOps > Linux' 카테고리의 다른 글

네트워크 관리  (0) 2022.01.28
소프트웨어 패키지 (RPM, YUM)  (0) 2022.01.27
논리 볼륨(Logical Volume) 관리  (0) 2022.01.26
디스크 관리 및 파일시스템  (0) 2022.01.25
작업 스케줄링  (0) 2022.01.25