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
끝.
'Program' 카테고리의 다른 글
CentOS7에 ElasticSearch 설치하기 (0) | 2018.06.05 |
---|---|
CentOS 기본명령어 (0) | 2018.06.05 |
CentOS7 실행중인 프로세스 확인/종료 (0) | 2018.05.07 |
Python logging 사용하기 (1) | 2018.05.07 |
Pycharm을 이용한 개발PC의 가상환경을 CentOS7의 가상환경에 적용하기 (0) | 2018.05.04 |