리눅스
systemd
mihee
2022. 3. 14. 05:45
background : init
- 모든 프로세스는 parent process 로부터 복제되어진다.(fork)
- UNIX-like 시스템에서 PID 1(Ancestor process)
- PID 1 프로세스만 복제가 아닌 kernel에 의해 생성된다.
- PID 1 프로세스는 시스템 기동 및 관련된 작업을 하는 최초의 프로세스이다.
- /etc/inittab 사용
- 초기화 후 runlevel 기능에게 제어를 분할.
SysV init
- 상업용 유닉스, 그리고 이후 유닉스 혈통을 잇는 SysV 계통에서 표준화
- 유닉스 계열 시스템에서 오랫동안 init가 PID 1의 자리를 이었다.
- 2011년부터 systemd로 대체됨.
단점
- 기능이 너무 없음
- 하위 서비스들의 제어 및 레포팅이 제대로 되지 않음
- 병렬 처리가 되지 않음(부트 및 종료 시간이 직렬화 처리되어 느림)
upstart
- init의 모든 기능을 그대로 둔채 runlevel 관련 기능을 대체
- event-driven 방식으로 작동하여, 서비스의 dependency를 해결
- 모니터링 이상 작동.
History : systemd
- 시스템 설정을 통합 관리하는 데몬
- 시스템, 서비스, 자원 설정 이벤트를 통합 관리
- 데몬과 제어 통신 프로그램으로 분리되어 제작됨
- loginctl, journalctl, systemctl 등등 제공
- 시스템의 기동, 종료(poweroff, halt)도 모두 통합 제어
systemd: iunit
- unit 단위로 시스템 관리
- systemctl --type(-t) help
- 동적 상태
- notification이 가능하므로 이벤트 처리 가능 -> 현재 상타개 동적으로 관리되므로 외부 명령어에 의존하지 않음
- 병렬 처리
- 부팅 혹은 target 진입시 선, 후 관계에 의해 프로세스를 병렬로 실행