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 |
댓글