linux.com에 게시된 An introduction to services, runlevels, and rc.d scripts라는 글을 따르면 linux service에 대한 설명은 다음과 같다고 한다.
A Linux service is an application (or set of applications) that runs in the background waiting to be used, or carrying out essential tasks
즉, 리눅스 환경에서의 서비스란 운영체제 백그라운드에서 실행되는 애플리케이션이다. 서비스는 시스템이 부팅될 때 자동으로 시작되므로 특정 프로그램을 윈도우 시작프로그램처럼 편리하게 사용하기 위해 서비스에 등록하여 사용한다.
또한 우리에게 익숙한 systemctl, service명령어로 제어가능하다는 장점이 있다.
이제 서비스에 등록하기 위한 과정을 살펴보자
서비스파일은 아래 경로에 생성해준다. 새로 등록할 서비스.service로 이름지으면 된다.
/etc/systemd/system/my.system

위 이미지는 CPSP프로젝트의 gunicorn을 서비스로 등록한 CPSP.service파일 내용이다.
service파일의 들어갈 내용은 아래 항목 중 선택해 작성한다.
[Unit]
Description: 서비스에 대한 설명 작성
Before: 시작되기 전에 실행할 것
After: 시작된 이후 실행할 것
Requires: 필요조건, 정상일 경우 서비스 시작
[Service]
User/Group: 실행할 사용자/그룹
WorkingDirectory: 프로세스의 작업 디렉토리. 서비스로 등록한 애플리케이션을 이 디렉토리에서 실행시킨다.
ExecStart: 시작 명령을 정의. 서비스로 등록할 애플리케이션이 위치한 경로와 옵션, 명령어 인수를 작성
ExecStop: 중지 명령을 정의
Umask: umask 값을 선언
[Install]
WantedBy, RequiredBy
"systemctl enable"로 유닛을 등록할 때 등록에 필요한 유닛을 지정한다
이렇게 service파일 작성을 마쳤으면 systemctl혹은 service명령어로 해당 서비스를 시작한다.
sudo systemctl start CPSP
서비스 시작까지 끝냈다면 앞으로 Linux시스템 시작 시 자동으로 프로그램이 시작되는 것이다.
'Deployment > Linux' 카테고리의 다른 글
| [Nginx] 파일 업로드 용량 제한 풀기 (0) | 2022.06.26 |
|---|---|
| [Linux/Ubuntu] 일반계정에서 SUDO명령어 사용하는 방법 (0) | 2022.06.22 |