Linux(CentOS) Systemd

박종현·2022년 5월 16일
0

리눅스(CentOS)

목록 보기
4/13

systemd

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

init

  • systemd 이전의 프로세스 및 서비스 관리 주체
  • 모든 프로세스의 부모 프로세스
  • 1번 PID를 가지고 있음
    • 0번 PID는 : Swapper - 특별한 역할이 없는 IDLE 프로세스
  • '런레벨(runlevel)' 을 사용하고 시스템의 상태를 정의하고 제어
    • 현재 systemd에서는 '타겟(target)'으로 대체됨
  • Init <런레벨 번호> : 해당 런레벨로 동작상태 변경
  • /etc/inittab : 기본 런레벨 지정
  • 서비스 관련 스크립트
    • 데몬(Daemon) : 서비스와 같은 의미
    • /etc/init.d : init을 통해 관리할서비스 스크립트 위치
       #service <데몬이름> [start/stop/restart]
       #etc/init.d/<데몬이름> [start/stop/restart]
      • /etc/rc.d/init.d 에 같은 스크립트 저장
    • /etc/rc.d/rc#.d
      • S##, K##등 파일이 존재
      • rc1.d/S01... → 런레벨 1이 될 때 S01 뒤에 따라오는 서비스는 실행
      • rc1.d/K01... → 런레벨 1이 될 때 K01 뒤에 따라오는 서비스는 실행

리눅스의 런레벨

0 : Halt - 시스템이 종료되어있는 상태1 : Single User mode - 관리자 계정만 사용 가능한 상태2 : Multi User mode - 다중 사용자 사용 가능3 : Multi User mode + Networking - 다중사용자 + 네트워크 지원5 : Multi User mode + Networking + GUI6 : Reboot

systemd

systemd의 특징

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

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

  • 서비스 상태
    • Active : 현재 동작하고 있음
    • Inactive : 현재 동작하고 있지 않음
    • Enabled : 재부팅시 동작하도록 설정(재부팅시 실행)
    • Disabled : 재부팅시 동작하지 않도록 설정(재부팅시 실행하지 않음)
  • systemctl <서브커맨드> [Argument]
  • 서비스 상태 확인
    • systemctl - 현재 시스템의 모든 systemd 관련 개체 출력
      • t, --type : 특정 타입 지정하여 출력

         #systemctl --type service // 서비스만 출력
    • systemctl status <서비스 이름>
       #systemctl status sshd.service
    • systemctl is-active <서비스 이름> : 현재 서비스의 동작상태 확인
    • systemctl is-enable <서비스 이름> : 서비스의 활성화(재부팅시 구동여부) 확인
    • systemctl list-unit-files --type service: 각 서비스별 활성화/비활성화(enabled/disabled) 상태 확인
       #systemctl list-unit-files --type service
      • static : 임의로 enabled/disabled 되지 않은 항목

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

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

마스크 설정

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

0개의 댓글