클라우드 아키텍트 양성과정
리눅스(CentOS) systemd
종바깅
2021. 4. 26. 10:58
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 + GUI
- 6 : 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 <서비스 이름> : 서로 충돌이 발생할 수 있는 서비스에 대한 차단
- 해당 서비스를 구동하기 위한 스크립트/ 서비스 파일등을 차단