본문 바로가기

서버 리뷰/Cubrid

/etc/rc.d/init.d/와 /etc/init.d/의 차이점: CUBRID 예시로 알아보기

728x90
반응형

리눅스 시스템에서 /etc/rc.d/init.d//etc/init.d/는 서비스 초기화 스크립트를 저장하는 디렉토리입니다. 이 글에서는 CUBRID 데이터베이스 서비스 스크립트를 예시로 두 디렉토리의 차이점을 알아보겠습니다.

1. 디렉토리 개요

/etc/rc.d/init.d/

  • 위치: /etc/rc.d/ 하위 디렉토리
  • 주요 배포판: 레드햇 계열 (RHEL, CentOS, Fedora)
  • 역할: 부팅 시 서비스를 관리하는 SysVinit 스크립트 저장
  • CUBRID 예시: /etc/rc.d/init.d/cubrid는 CUBRID 서비스를 시작, 종료, 상태 확인하는 스크립트

/etc/init.d/

  • 위치: /etc/ 바로 아래
  • 주요 배포판: 데비안 계열 (Ubuntu, Debian)
  • 역할: SysVinit 기반 서비스 스크립트 저장
  • CUBRID 예시: /etc/init.d/cubrid는 CUBRID 서비스를 제어하는 스크립트

2. 주요 차이점

항목 /etc/rc.d/init.d/ /etc/init.d/
배포판 레드햇 계열 (RHEL, CentOS, Fedora) 데비안 계열 (Ubuntu, Debian)
구조 /etc/rc.d/ 하위에 위치 /etc/ 바로 아래에 위치
관리 도구 chkconfig update-rc.d
CUBRID 스크립트 /etc/rc.d/init.d/cubrid /etc/init.d/cubrid

참고: 일부 시스템에서는 /etc/init.d//etc/rc.d/init.d/의 심볼릭 링크로 설정될 수 있습니다.

3. CUBRID 스크립트 예시

두 디렉토리의 cubrid 스크립트는 CUBRID 데이터베이스 서비스를 제어하며, 기능은 동일합니다. 아래는 예시입니다:

#!/bin/bash
# /etc/rc.d/init.d/cubrid 또는 /etc/init.d/cubrid

SERVICE_NAME="cubrid"
CUBRID_HOME="/usr/local/cubrid"
PID_FILE="/var/run/cubrid.pid"

start() {
    echo "Starting $SERVICE_NAME..."
    $CUBRID_HOME/bin/cubrid service start
    [ $? -eq 0 ] && echo "$SERVICE_NAME started." || echo "Failed to start $SERVICE_NAME."
}

stop() {
    echo "Stopping $SERVICE_NAME..."
    $CUBRID_HOME/bin/cubrid service stop
    [ $? -eq 0 ] && echo "$SERVICE_NAME stopped." || echo "Failed to stop $SERVICE_NAME."
}

case "$1" in
    start) start ;;
    stop) stop ;;
    restart) stop; sleep 2; start ;;
    status) [ -f $PID_FILE ] && echo "$SERVICE_NAME is running." || echo "$SERVICE_NAME is not running." ;;
    *) echo "Usage: $0 {start|stop|restart|status}"; exit 1 ;;
esac

exit 0

사용 방법

  • 레드햇 계열:
    • 시작: service cubrid start
    • 부팅 시 자동 실행: chkconfig cubrid on
  • 데비안 계열:
    • 시작: service cubrid start
    • 부팅 시 자동 실행: update-rc.d cubrid enable

4. 현대적 환경: systemd

최신 리눅스 배포판(CentOS 7+, Ubuntu 16.04+)에서는 SysVinit 대신 systemd를 사용합니다. 이 경우, /lib/systemd/system/cubrid.service 파일로 CUBRID 서비스를 관리하며, 명령어는 다음과 같습니다:

  • 시작: systemctl start cubrid
  • 부팅 시 자동 실행: systemctl enable cubrid

5. 결론

  • 구조적 차이: /etc/rc.d/init.d/는 레드햇 계열, /etc/init.d/는 데비안 계열에서 주로 사용됩니다.
  • CUBRID 스크립트: 두 디렉토리의 cubrid 스크립트는 동일한 역할을 하며, 서비스 제어 방식은 배포판에 따라 관리 도구(chkconfig vs. update-rc.d)가 다릅니다.
  • 권장 사항: 시스템 배포판과 초기화 시스템(SysVinit 또는 systemd)을 확인한 후, CUBRID 공식 문서에서 설치 및 관리 방법을 참고하세요.
반응형