systemd 서비스
- 리눅스 시스템 및 서비스 관리자
- init 프로세스가 하던 작업을 대신해서 수행한다.
- 다양한 서비스 데몬을 시작하고 프로세스들의 상태를 유지하며 시스템의 상태를 관리한다.
init 프로세스
- init 프로세스는 스크립트를 순차적으로 실행하여 다른 프로세스를 동작시킨다.
- 우분투의 14.10 ver 까지는 자체적으로 개발한 upstart 를 기존의 init 대신 사용했으나 지금은 upstart 를 설치 안함
- init을 systemd 로 대체
- upstart 와 관련된 스크립트 파일은 /etc/init 디렉터리 , 작업명.conf 파일로 구성
- init 과 관련된 스크립트 파일은 /etc/init.d 디렉터리에 있으며 아직 일부 서비스의 스크립트 파일이 남아있다.
init 스크립트 방식의 서비스와 systemd 서비스가 아직 공존하는 과도기!
실제 ls /etc/init.d 명령을 입력해보면 나오는걸 볼 수 있다.
런레벨
- init 프로세스는 없어졌지만 init 프로세스에서 사용하던 런레벨의 개념은 이해가 필요하다.
- init 시스템의 단계를 일곱 개로 정의하여 구분하고 각 단계에 따라 셸 스크립트를 실행하는데, 이 단계들을 런레벨 이라고 한다.
런레벨 | 의미 | 관련 스크립트의 위치 |
0 | 시스템 종료 | /etc/rc0.d |
1,S | 응급 복구 모드(단일 사용자 모드) | /etc/rc1.d /etc/rcS.d |
2 | 다중 사용자 모드 | /etc/rc2.d |
3 | /etc/rc3.d | |
4 | /etc/rc4.d | |
5 | 그래피컬 다중 사용자 모드 | /etc/rc5.d |
6 | 재시작 | /etc/rc6.d |
- 런레벨별로 실행하는 스크립트 파일은 /etc/init.d 에 있는 파일에 대한 심벌릭 링크
systemd 유닛
- 전체 시스템 및 서비스들을 시작하고 관리하는 데 유닛이라 부르는 구성 요소를 사용한다.
- systemd 는 관리 대상의 이름을 '서비스명.유닛 종류' 형태로 관리한다.
- systemd 유닛의 종류
service | 가장 명백한 유닛, 데몬 시작, 종료, 재시작,로딩을 한다. | atd.service |
socket | 소켓을 관리하는 유닛 | dbus.socket |
device | 리눅스 장치 트리에 있는 장치를 관리한다. | sys-module-fuse.device |
mount | 디렉터리 계층 구조의 마운트 포인트를 관리한다. | boot.mount |
target | 유닛을 그루핑한다. | basic.target |
swap | 스왑 장치를 관리한다. | dev-mapper-fedora\x2.dswap.swap |
path | 경로를 관리한다. | cups.path |
timer | 타이머와와 관련된 기능을 관리한다. | dnf-makecache.timer |
slice | 프로세스 그룹의 자원을 계층적으로 관리한다. | system.getty.slice |
scope | 외부에서 생성된 프로세를 관리한다. | init.scope |
등등..
'리눅스프로그래밍' 카테고리의 다른 글
우분투 리눅스 - 스냅 (0) | 2020.06.20 |
---|---|
우분투 리눅스 - 우분투 패키지 (0) | 2020.06.20 |
우분투 리눅스 - 부팅 (0) | 2020.06.04 |
우분투 리눅스 - 파일 시스템의 구조 (0) | 2020.05.31 |
우분투 리눅스 - 파일시스템의 종류 (0) | 2020.05.30 |