Init and Systemd

김재현·2023년 8월 8일
0

Linux

목록 보기
4/12
post-thumbnail

Boot Process Start

Init 과 Systemd 는 시스템 부팅 중 필요한 서비스 및 프로세스를 시작하는 역할을 한다.
과거에는 Init 프로세스가 주로 사용되었지만, 최근에는 Systemd 가 Init 을 대체하여 사용된다.
둘의 차이는 다음과 같다.

1. 처리 방식

init 시스템은 간단하고 직렬적인 방식으로 서비스 및 프로세스를 시작한다.
하나의 서비스가 시작되기를 기다린 후 다음 서비스가 시작된다.
이런 과정에 따라 부팅 시간이 늘어난다.

systemd 는 병렬로 여러 서비스 및 프로세스를 시작하여 부팅 속도를 개선한다.
의존성을 분석하고 병렬 실행하여 시스템 초기화를 효율적으로 처리한다.

2. 단위(Unit)

init 시스템은 각 서비스를 스크립트로 정의하여 시작한다.
보통 /etc/init.d 디렉터리에 위치한다.

systemd 는 단위라는 개념을 도입하여 각 서비스를 unit 파일로 정의한다.
/etc/systemd/system 디렉터리에 위치한다.
단위 파일로 서비스의 설정 및 의존성을 지정한다.

3. 로그 및 디버깅

init 시스템은 간단한 로그 매커니즘을 사용한다.
따라서 복잡한 문제의 원인 파악이 어려울 수 있다.

systemd 는 강력한 로깅 및 디버깅 기능을 제공한다.
서비스 실행 중 발생한 문제를 빠르게 식별하고 해결할 수 있다.

4. 서비스 활성화 및 비활성화

init 시스템은 서비스를 활성화하거나 비활성화하기 위해 서비스의 실행 스크립트를 /etc/init.d 디렉터리에 직접 추가하거나 제거해야 한다.
부팅 시 해당 스크립트가 실행되는지 여부에 따라 활성화/비활성화 된다.

systemd 에서는 # systemctl 명령어를 사용하여 서비스를 활성화/비활성화 한다.

5. 확장성과 유연성

init 시스템은 기능 확장이 어렵고 유연성이 제한적이다.

systemd 는 확장 가능하고 유연한 아키텍처를 가지며, 다양한 기능을 제공하면서 확장성이 높다.

profile
Linux/Cluster/Infra Engineer

0개의 댓글

관련 채용 정보