본문 바로가기
Linux

[Linux] 리눅스 시작프로그램 chkconfig 개념과 사용방법

by 정권이 내 2021. 3. 26.

Chkconfig 개념과 사용 방법

 

이전에 톰캣을 설치하고 시스템 시작시 자동실행할수있게 chkconfig를 이용하여 시작프로그램에 등록한다는

내용을 작성했었습니다.

 

리눅스 Tomcat9 설치하기

ElasticSearch 관련 프로젝트를 진행중에 Kibana에서 APM을 사용하기위해 테스트용 jar를 리눅스상에서 구동시키기 위해 톰캣을 설치 해보게 되었습니다. 기본적인 톰캣 설치 뿐만 아니라 ElasticSearch, Ki

ksr930.tistory.com

 

chkconfig의 정확한 기능과 사용법을 알아야할 필요가 있다고 생각하여 찾아본 정보들을 정리하여 올려봅니다.

 

chkconfig ?

윈도우를에서 시작프로그램을 들어본적이 있을것입니다. 우리가 컴퓨터를 키고 자동으로 시작되는 프로그램들이

있는데 리눅스에서는 시작프로그램을 chkconfig 에서 관리하게 됩니다.

 

쉘에 chkconfig 명령을 해보면 현재 시스템에 등록된 서비스 목록을 확인할수 있고 서비스이름을 지정하면 해당

서비스에 대해서만 상태를 확인할수있습니다.

$ chkconfig --list [서비스이름]

 

Run Level

chkconfig 를 사용하기전에 Run Level에 대한 개념을 알필요가 있는데 리눅스 시스템에는 0~6 단계의 부팅레벨이

있습니다. 다만 0, 6으로 부팅레벨을 설정하면 안되는데 시스템종료, 재부팅을 의미하므로 시스템을 사용하지 못

할수있기 때문입니다.

Run Level옵션설명
0halt (Do NOT set initdefault to this)시스템 종료시
1Single user mode싱글 유저모드, 윈도우의 안전모드와 비슷한개념
2Multiuser, without NFS다중 사용자모드, NFS 지원안함
3Full multiuser mode일반적인 다중사용자모드, CLI 환경
4unused사용안함
5X113번과 동일, GUI 환경
6reboot(Do NOT set initdefault to this)재부팅시

 

chkconfig 에서 Run Level 역할

만약 리눅스에서 웹서버를 운영중이고 tomcat이 리눅스를 부팅할때마다 실행되어야 한다면 보통 run level은 3,5

로 지정할것입니다.

img

 

chkconfig 명령으로 현재 시스템에 등록된 서비스들을 확인할수있는데 가장 아래에 tomcat9을 보면 3,5 레벨에

on으로 되어있는것을 볼수있습니다. 이 리눅스 시스템에서 tomcat 서비스를 Run Level 3, 5 에서 자동으로 실행

하겠다는 의미입니다.

 

chkconfig 디렉토리

chkconfig 로 서비스를 등록하기전에 서비스 등록을 위한 스크립트의 경로를 알아야 합니다. /etc/rc.d/init.d

경로로 이동하면 현재 시스템에서 chkconfig 명령을 수행하면 나오는 서비스들의 스크립트들이 있습니다.

img

 

그리고 이전 경로인 /etc/rc.d/ 에는 Run Level 마다 디렉터리를 구분되어 있습니다. tomcat9 의 경우 3, 5레벨에

존재하므로 rc3.d, rc5.d 두 디렉토리에 심볼릭링크가 존재합니다.

img

 

chkconfig 등록

이제 chkconfig에 서비스를 직접 등록 해보겠습니다. 서비스를 등록하기 위해서는 /etc/rc.d/init.d 경로에 스크립

트를 작성해야 합니다. 스크립트 이름은 서비스에 맞는 이름을 적당하게 작성하면 됩니다.

#! /bin/bash
# Startup script for the Tomcat Server
# chkconfig: 35 50 50
# description: Tomcat is a Web application server.
# processname: java
# directory : CATALINA_HOME=/usr/local/tomcat9/apache-tomcat-9.0.43

source /etc/profile
export CATALINA_HOME=/usr/local/tomcat9/apache-tomcat-9.0.43
case "$1" in
        start)
                echo "Start tomcat9"
                $CATALINA_HOME/bin/startup.sh
                ;;
        stop)
                echo "Shut down tomcat9"
                $CATALINA_HOME/bin/shutdown.sh
                ;;
        restart)
                echo "Restart tomcat9"
                $CATALINA_HOME/bin/shutdown.sh
                $CATALINA_HOME/bin/startup.sh
                ;;
        *)
                echo "Use service tomcat9 {start|stop|restart}"
                exit 1

esac
exit 0

https://ksr930.tistory.com/56 tomcat9 을 등록하기위한 스크립트

 

# chkconfig: 35 50 50

이 부분은 chkconfig 등록을 위해서 반드시 작성해야 하는 부분인데 첫번째 숫자인 35는 해당 서비스를 작동시킬

Run Level을 뜻합니다. 두번째와 세번째 숫자인 50 50 은 각각 서비스 시작 우선순위, 서비스 종료 우선순위를 나

타내는데 보통 50 50을 디폴트로 사용합니다.

 

그외에 내용은 실행시킬 서비스에 맞추어 스크립트를 작성하면 되고 스크립트를 작성했으면 chkconfig 명령으로

등록하면됩니다. 스크립트 이름이자 서비스이름이며 등록된 서비스는 위의 예제처럼 start / stop / restart 옵션

으로 systemctl 명령을 통해 제어 할수있습니다.

$ chkconfig --add [스크립트 이름]

 

chkconfig 삭제

chkconfig 에서 특정 서비스를 삭제하고 싶다면 --del 명령으로 삭제할수있습니다.

$ chkconfig --del [스크립트 이름]
반응형

댓글