Skip to Content
Infra & DevOpsCentOS 6의 Run Level과 chkconfig 설정
☁️ Infra & DevOps2017년 4월 14일

CentOS 6의 Run Level과 chkconfig 설정

#linux#runlevel#sysadmin#infra#flamingo

CentOS의 서비스 자동 시작 설정을 확인하며 남겨 둔 메모입니다. 여기서는 CentOS 6·RHEL 6에서 사용한 SysV 방식의 서비스 관리와 Run Level을 다룹니다. systemd 서비스 파일과는 설정 방법이 다릅니다.

Run Level의 의미

Run Level은 시스템에서 어떤 서비스들을 실행할지 구분하는 운영 모드입니다. 부팅할 때 0부터 6까지 차례로 올라가는 단계가 아닙니다. 설정된 모드로 진입하면서 필요한 서비스를 시작하거나 중지합니다.

RHEL 6 문서의 구분은 다음과 같습니다.

번호의미
0시스템 정지
1단일 사용자 모드
2기본적으로 사용하지 않으며 별도 정의 가능
3콘솔 기반 다중 사용자 모드
4기본적으로 사용하지 않으며 별도 정의 가능
5그래픽 환경을 포함한 다중 사용자 모드
6시스템 재시작

같은 번호라도 배포판과 초기화 시스템에 따라 의미가 다를 수 있습니다. 이 표를 모든 Linux 환경의 공통 규칙으로 적용하지는 않아야 합니다.

현재 모드 확인

당시 환경에서는 다음 명령으로 이전 Run Level과 현재 Run Level을 확인할 수 있었습니다.

bash
runlevel

예를 들어 N 3이면 이전 값은 없고 현재 모드가 3이라는 뜻입니다. /etc/inittab의 기본값을 확인하는 것과 지금 실행 중인 모드를 확인하는 것은 구분해야 합니다.

chkconfig 등록 정보

원래 메모의 설정은 다음 주석이었습니다.

bash
# chkconfig: 2345 95 05

2345는 기본 활성화할 Run Level, 95와 05는 시작과 종료 순서입니다. 숫자가 작은 링크가 먼저 처리되므로 시작은 뒤쪽에, 종료는 앞쪽에 배치하는 형태입니다.

이 주석은 완성된 서비스 스크립트가 아닙니다. 실제로는 /etc/init.d/ 아래에 시작·중지 동작을 구현한 스크립트와 설명 등 등록 정보를 준비해야 합니다. 시작 번호가 크다는 이유만으로 DB나 네트워크의 준비 완료까지 보장되지는 않습니다.

준비된 서비스 스크립트를 등록하고 설정을 확인하는 예시는 다음과 같습니다.

bash
chkconfig --add example-service chkconfig --list example-service

example-service는 설명용 이름입니다. 자동 시작 설정이 등록됐는지와 지금 프로세스가 실행 중인지는 따로 확인해야 합니다.

참고 자료

Last updated on