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스크립트는 동일한 역할을 하며, 서비스 제어 방식은 배포판에 따라 관리 도구(chkconfigvs.update-rc.d)가 다릅니다. - 권장 사항: 시스템 배포판과 초기화 시스템(SysVinit 또는 systemd)을 확인한 후, CUBRID 공식 문서에서 설치 및 관리 방법을 참고하세요.
반응형