systemd 주요 역할
- 기존 init 프로세스의 기능을 지원 및 통합
- 동작 모드에 따른 시작 서비스 관리 (기존 run level)
- 병렬 실행 및 종속성 모델 관리
- 커널 로그 엔트리 관리 (journald)
- 네트워크 연결 관리 (networkd)
- 로그인 관리 (logind)
Unit, Unit 파일
- Systemd가 관리하는 기본 개체 단위
- Unit 유형
=>service,socket,device,mount,automount,swap,target,path,timer,slice,scope
=>unit 파일의 suffix로 활용 (ex.ssh.service)
- Unit 파일 형식 (INI 파일 형식)
- Unit섹션 - Unit의 기본 정보 정의
- Description - 사람이 읽을 수 있는 Unit 정보. 레이블로 활용
- After,Requires,Wants - Unit의 종속성을 지정
- Unit 유형 섹션 - Unit 유형에 따른 종속들 정의
- ExecStart - 구동 할 명령어를 지정 (절대 경로 사용)
- Restart - 서비스 재시작 여부 지정
- Install 섹션 - Unit 설치와 관련된 정보 정의
- Alias - Unit을 등록할 때 사용하는 이름 (ex.systemctl enable sshd.service)
- WantedBy - Unit간 종속성 지정 (ex.multi-user.target - 해당 실행모드 구동 시 자동 실행)
systemd 관리용 도구 - systemctl
- systemd의 상태를 조사하고 설정을 변경하는데 사용하는 도구
- 모든 load되고 active 상태의 서비스 확인
$ systemctl list-units --type=service
- 활성화 (active) 여부와 관계 없이 모든 설치된 서비스 확인
$ systemctl list-unit-files --type=service
- 자주 사용되는 systemctl 서브 커맨드
- list-unit-files [pattern] - 설치된 Unit 목록 확인
- enable unit - unit이 부팅 시 자동 활성화
- disable unit - unit이 부팅 시 자동 활성화 되는 것을 방지
- isolagte target - 타겟의 실행 모드를 변경
- start unit - unit을 즉시 활성화
- stop untit - unit을 즉시 비활성화
- restart unit - unit을 재시작. 실행되지 않은 상태였다면 start
- stauts unit - unit의 상태 및 최근 로그 내용을 확인
- kill pattern - 패턴과 일치하는 unit에 시그널을 보냄
- reboot - 컴퓨터를 재시작
- daemon-reload - unit 파일들과 systemd 설정 정보를 다시 로드