본문 바로가기
IT/Linux

systemd

by 혁클 2021. 3. 29.



Systemd

  • 현재 사용 중인 RHEL(CentOS) 7 버전 이후, Ubuntu 18.04부터
  • 프로세스 및 서비스 관리
  • systemd 이전의 프로세스 및 서비스 관리 주체: init

 

실습용 구버전 CentOS 정보 : CentOS 5.8

ID: root

PW: qwer1234

 

init

  • systemd 이전의 프로세스 및 서비스 관리 주체
  • 모든 프로세스의 부모 프로세스
  • 1번 PID를 가지고 있음
    • 0번 PID: Swapper 특별히 역할이 없는 IDLE 프로세스
  • ‘런 레벨’을 사용하여 시스템의 상태를 정의하고 제어 (Run Level)
    • 현재 systemd에서는 ‘타깃(Target)’으로 대체됨
    • 리눅스의 런 레벨
      • 0 : Halt - 시스템이 종료되어 있는 상태
      • 1 : Single-User mode - 관리자 계정만 사용 가능한 상태
      • 2 : Multi-User mode - 다중 사용자 사용 가능
      • 3 : Multi-User mode + Networking - 다중 사용자+네트워크 지원
      • 5 : Multi-User mode + Networking + GUI 
      • 6 : Reboot
  • init <런 레벨 번호> : 해당 런 레벨로 동작상태 변경
    • init 0 : 전원 종료
    • init 6 : 리부팅
  • /etc/inittab : 기본 런 레벨 지정
  • 서비스 관련 스크립트
    • 데몬(Daemon) : 서비스
    • /etc/init.d : init을 통해 관리할 서비스 스크립트 위치
      • # service <데몬 이름> {start|stop|restart}
      • # /etc/init.d/sshd {start|stop|restart}
      • /etc/rc.d/init.d 에 같은 스크립트 저장
    • /etc/rc.d/rc#. d 
      • S##, K## 등 파일이 존재함
      • rc1.d/S… => 런레벨 1이 될 때 S## 뒤에 따라오는 서비스는 실행
      • rc1.d/K... => 런레벨 1이 될때 K## 뒤에 따라오는 서비스는 중지

 

systemd의 특징

  • 부팅 시 병렬화 처리 : 부팅 과정에서 문제 발생 시에도 다른 부분은 정상적으로 부팅 진행
  • cgroup: Control Group 개념을 통해 자원 관리
  • 서비스(데몬)의 종속성 관리
  • systemd가 서비스를 관리 : 스크립트 방식이 아닌 표준화된 방식
    • 참고: /usr/lib/systemd/system/sshd.service 파일 참고

 

systemctl를 사용한 서비스 상태 확인 명령

  • systemctl <서브 커맨드> [Argument]
  • 서비스 상태 확인
    • # systemctl 
      • 현재 시스템의 모든 systemd 관련 개체 출력
      • -t, --type : 특정 타입 지정하여 출력
        • # systemctl --type service : 서비스만 출력
    • # systemctl status <서비스 이름>
      • # systemctl status sshd.service
    • # systemctl is-active <서비스 이름>
      • 현재 서비스의 동작상태 확인
    • # systemctl is-enabled <서비스 이름>
      • 서비스의 활성화(재부팅 시 구동여부) 확인
    • # systemctl list-unit-files --type service
      • 각 서비스 별 활성화/비활성화(enabled/disabled) 상태
      • static : 임의로 enable/disable 되지 않는 항목

 

참고. 서비스 상태 종류

  • Active : 현재 동작하고 있음
  • Inactive : 현재 동작하지 않고 있음
  • Enable : 재부팅 시 동작하도록 설정 (재부팅시 실행)
  • Disable : 재부팅 시 동작하도록 설정 (재부팅시 실행하지 않음)

 

systemctl을 사용한 서비스 상태 변경 명령

  • systemctl <서브 커맨드> <서비스명>
  • 서브커맨드 
    • start : 즉시 지정한 서비스 구동
    • stop : 즉시 지정한 서비스 중지
    • restart : 즉시 지정한 서비스 중지 후 다시 시작
    • reload : 즉시 서비스 설정 다시 읽어 들임
    • enable : 재부팅 시 서비스 구동 여부 설정(활성화)
    • disable : 재부팅 시 서비스 구동여부 설정(비활성화)

 

마스크 설정

  • systemctl mask <서비스 이름>
    • 서로 충돌이 발생할 수 있는 서비스에 대한 차단
    • 해당 서비스를 구동하기 위한 스크립트/서비스 파일 등을 차단
  • systemctl unmask <서비스 이름>
    • mask로 차단된 서비스 차단 해제

 

========================================================

*이 포스팅은 엔코아 플레이 데이터 수업 내용을 참고로 합니다.

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

로그관리(rsyslog,journal)  (0) 2021.04.01
작업 스케줄러  (0) 2021.03.30
저장소 관리(LVM,RAID)  (0) 2021.03.27
저장소 관리 (파티션,파일 시스템,스왑)  (0) 2021.03.25
권한 / 프로세스  (0) 2021.03.24

댓글