본문 바로가기
리눅스/Part3. Ch01. 부팅 및 시스템 관리 데몬의 이해

03. systemd 소개

by Engineer-Lee 2022. 7. 16.
반응형

Systemd 주요 역할

  • 기존 init 프로세스의 기능을 지원 및 통합
  • 동작 모드에 따른 시작 서비스 관리 (기존 run level)
  • 병렬 실행 및 종속성 모델 관리
  • 커널 로그 엔트리 관리 (journald)
  • 네트워크 연결 관리(networkd)
  • 로그인 관리 (logind)

 

 

Unit, Unit 파일

  • Systemd가 관리하는 기본 개체 단위
  • Unit 유형
    -> service, socket, device, mount, automount, swap, target, path, timer, slice, scope
    -> unit 파일의 suffix로 활용 (예, ssh.service)
  • Unit별로 수행할 작업의 정의나 설정은 unit에 정의
  • Unit 파일 형식 (INI 파일 형식)
    . Unit 섹션: Unit의 기본 정보 정의
       - Description: 사람이 읽을 수 있는 Unit정보. 레이블로 활용
       - After, Requires, Wants: Unit의 종속성을 지정
    . Unit 유형 섹션: Unit유형에 따른 속성들 정의
       - ExecStart: 구동할 명령어를 지정 (!!절대 경로 사용)
       - Restart: 서비스 재시작 여부 지정
    . Install 섹션: Unit 설치와 관련된 정보 정의
       - Alias: Unit을 등록할 때 사용하는 이름 (예, systemctl enable sshd.service)
       - WantedBy: Unit간 종속성 지정 (예, multi-user.target : 해당실행모드 구동 시 자동실행)

 

 

systemd 관리용 도구: systemctl

  • systemd의 상태를 조사하고 설정을 변경하는데 사용되는 도구
    예, 모든 load되고 active상태의 서비스 확인
    $ systemctl list-units --type=service
    예, 활성화(active)여부와 관계없이 모든 설치된 서비스 확인
    $ systemctl list-unit-files --type=service
  • 자주 사용되는 systemctl 서브 커맨드
    . list-unit-files [pattern] : 설치된 Unit 목록 확인
    enable unit : unit이 부팅 시 자동 활성화
    . disable unit : unit이 부팅 시 자동 활성화 되는 것을 방지
    . isolate target : 타겟의 실행 모드를 변경
    start unit : unit을 즉시 활성화
    stop unit : unit을 즉시 비활성화
    restart unit : unit을 재시작. 실행되지 않은 상태였다면 start
    status unit : unit의 상태 및 최근 로그 내용을 확인
    . kill pattern : 패턴과 일치하는 unit에 시그널을 보냄
    . reboot : 컴퓨터를 재시작
    daemon-reload : unit 파일들과 systemd 설정 정보를 다시 로드

 

systemd 좀 더 알아보기

Unit 간의 의존성

  • Unit 파일의 [Unit] 영역에 명시적 종속성 설정을 지원
  • 패키지 매니저를 통해 설치한 경우, 관련된 설정이 포함됨
  • 예) Wants
    가능하다면 함께 실행이 필요한 unit
    반드시 요구 되는 종속성은 아님
  • 예) Requires
    엄격한 의존성을 가짐. 종속성을 가진 unit이
    실패하는 경우 서비스가 종료됨

Unit 간의 실행 순서 조정

  • Before, After 제약을 지정하여 순서를 조정할 수 있음
    * Wants, Requires보다 After 속성이 자주 사용됨
  • 명시적으로 요청되지 않은 경우 직렬적인 종속성은 없음
    -> 병렬적 수행이 용이하도록 설계됨

예) docker.service

 

 

 

 

Systemd 관련 명령어 실습 진행

반응형