프로그래밍/Raspberry PI

[라즈베리파이/라즈비안] 서비스 등록 (자동 시작)

Beginner:) 2022. 5. 24.

짧게 요약하자면

1. /etc/systemd/system/ 폴더에 서비스 파일을 생성한다. (OS마다 다름)

2. 서비스 파일에 실행할 프로그램 위치, 프로그램 이름과 그 외 옵션들을 작성한다.

3. systemctl을 통하여 컨트롤한다.

 

 

 

- 파일생성

sudo vim /etc/systemd/system/my_service.service

 

 

- 파이썬 플라스크 예제

[Unit]
Description=flaskapp
After=network.target

[Service]
Type=idle
User=pi
WorkingDirectory=/home/pi/www/
Restart=always
ExecStart=/usr/bin/python3 /home/pi/www/main.py

[Install]
WantedBy=multi-user.target

 

파일 실행권한 수정

sudo chmod 644 /etc/systemd/system/my_service.service

 

- 샘플 인수 설명

[Unit]

Description : 서비스에 대한 설명

After : 해당 서비스가 시작된 후 실행 ex) network.target은 네트워크가 실행이 되고 플라스크가 실행되게 함

Before : 해당 서비스가 시작되기 전에 실행

Requires : 필요조건, 정상적일 경우, 서비스를 시작

 

[Service]

Type=idle (simple, forking, oeshot, idle 등)

User/Group : 실행 사용자/그룹

ExecStart : 시작 명령을 정의

ExecStop : 중지 명령을 정의

Restart=always (프로세스가 종료시 재시작)

 

- 사용방법

먼저 서비스 등록&데몬 리로드

sudo systemctl enable my_service
sudo systemctl daemon-reload

 

서비스 명렁어(.service 생략)

  sudo systemctl start my_service.service // 시작
  sudo systemctl stop my_service.service // 중지
  sudo systemctl status my_service.service // 상태
  sudo systemctl restart my_service.service // 재시작

 

 

 

시스템 단위모음

https://www.freedesktop.org/software/systemd/man/systemd.special.html

 

 

반응형

댓글