인프라/서버(OS)

[OS] systemd, init.d 알아보기

인프라베어 2026. 1. 26. 22:56

1. CentOS 7 이후, Rocky Linux 8/9와 차이?

CentOS 와 Rocky Linux 가 다양하게 존재하는 환경에서 IP를 변경하는 일이 있었다.

Rocky Linux를 먼저 접했기에 systemctl status NetworkManager / systemctl restart NetworkManager 등의 명령어를 먼저 수행하고 CentOS에서도 수행하려 했지만 CentOS에서는 systemctl restart network / service network restart 를 수행해야 네트워크를 재시작 할 수 있었다.

또한 CentOS와 Rocky Linux 모두 네트워크 설정 방법이 sysconfig/network-scripts / NetworkManager/system-connections 에서 관리를 할 수 있기에 이러한 차이가 발생한 근본적인 원인에 대해 알아보고 싶었다.

2. init.d와 systemd

init.d - 부팅과정에서 어떤 서비스가, 어떤 순서와 조건으로 실행되는지를 결정하는 핵심구성요소

systemd - CentOS -> Rocky Linux 로 넘어오면서 이 init 시스템이 init.d에서 systemd로 변경되었다.

init.d

스크립트 기반의 서비스 관리 방식

  • 서비스는 /etc/init.d/ 아래의 쉘 스크립트로 존재
  • 시작/중지/재시작 로직을 스크립트에 직접 구현
  • 부팅 시 실행 순서는 숫자(prefix) 로 제어

/etc/init.d 하위에서 network, sshd 등 의 스크립트를 확인할 수 있다.

 

서비스 제어 명령어 

ex) service network restart 

 

systemd 

systemd는 부팅과 서비스 관리를 통합적으로 제어하는 시스템 매니저다.

  • 서비스는 Unit 파일로 정의
  • 상태(state), 의존성(dependency), 재시작 정책을 OS가 관리
  • 스크립트 실행이 아니라 상태 전이(state transition) 중심

서비스를 스크립트로 실행하는 개념보다는 서비스의 상태를 OS가 관리하게 됨

확인방법

ps -p 1 : PID 1번이 systemd 임을 확인할 수 있음

systemd 설정 파일은 /usr/lib/systemd/system 에서 확인가능

 

서비스 제어 명령어

ex) systemctl status sshd

3. 서비스 상태 확인 및 로그확인 방법

init.d

ex) sshd 서비스 확인 절차

# 서비스 상태 확인

service sshd status

 

# sshd 로그 확인

/var/log 하위에 대부분의 로그파일들이 위치하기 때문에 해당 경로에서 확인 (messages, secure 파일 등)

tail -f /var/log/secure

 

# 최근 기준으로 로그 확인

grep sshd /var/log/secure | tail -n 100

grep -i error /var/log/messages | tail -n 50

systemd 

ex) sshd 서비스 확인 절차

# 서비스 상태 확인

systemctl status sshd

 

# sshd 로그 확인

journalctl -u sshd  

# 로그 실시간 확인

journalctl -u sshd -f

4. 마무리

  • 서비스 확인방법
    service ~ status
    systemctl ~ status
    상태에 따라 확인 후 조치
  • status 만으로 모르는 경우 로그 확인
    로그 확인은 로그 파일이 클 수 있으므로 주의해서 검색
    grep - i [검색문자] [검색파일] | tail -n [줄 수]
    /var/log 하위 로그 파일 참고, Rocky의 경우 journalctl 활용