본문 바로가기

Program

CentOS7 Service 만들기

반응형

CentOS7 Service 만들기

CentOS7에서 서버가 실행될 때 자동으로 실행되는 서비스를 만들고 싶다면

 

먼저 아래 내용과 같은 파일을 만들어 /etc/systemd/system/서비스명.service 로 저장한다.

예)/etc/systemd/system/TestService.service

 

[Unit]
Description = Test Service Program        //서비스에 대한 설명
After = network.target

[Service]
Type = simple                             //시작 유형
PIDFile = /var/run/dup_detect.pid         //중복 방지를 위한 pid파일
ExecStart = /home/TestService.sh start    //서비스 실행시 시작되는 sh파일

[Install]
WantedBy = multi-user.target

 

중요한 정보는 //로 표시한 정보와 같고 더 자세한 내용은 여기를 봐라.

 

위 파일을 /etc/systemd/system 경로에 TestService.service 파일명으로 저장 완료했다면 콘솔에서 아래 명령어를 실행해봐라.

systemctl daemon-reload 
systemctl list-unit-files 

 

서비스 목록에 TestService.service가 등록되어 있는것을 확인할 수 있다.(disabled라 현재 자동시작은 안된 상태다. 아래서 자동시작 설명할 거다.)

 

 

이제 TestService.service 파일 안에 실행 명령으로 작성한 /home/TestService.sh 파일을 만들어보자.

서비스가 실행될 때 /home에 TestService.sh파일을 실행시키도록 되어있다.

 

/home/TestService.sh 파일을 만들고 아래와 같이 입력하자.

(Python VirtualEnv 환경에서 돌아가야 하는 Test.py라는 실행파일을 이미 만들어 두었다고 가정한다.)

 

#! /bin/bash

# Activate the python virtual environment
echo "activate TestEnv"
source /home/TestEnv/bin/activate

echo "Start EAS"
python /home/Test.py START

echo "Start Complate"
exit 0

 

TestService.sh파일이 실행되면 TestEnv 가상 환경이 활성화되고 Test.py가 실행된다.

이 파일을 /home/TestService.sh로 저장한다.

 

 

이제 위에서 만든 TestService.service가 서버가 켜질 때 자동 실행되도록 설정하자.

 

systemctl enable TestService

 

서비스를 실행하자

systemctl start TestService

 

끝.

 

 

 

 

 

반응형