짧게 요약하자면
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
반응형
'프로그래밍 > Raspberry PI' 카테고리의 다른 글
[라즈베리파이] GUI 데스크톱 환경 설치 (0) | 2022.07.21 |
---|---|
[라즈베리파이] Node-RED 설치 (0) | 2022.06.07 |
[리눅스/라즈베리파이]fswebcam 배너삭제, 출력문 삭제 외 다른 기능들 (0) | 2021.09.03 |
라즈베리파이 I2C(SCL.0, SDA.0) 사용하기 (0) | 2021.06.29 |
[라즈비안/라즈베리파이] 메뉴바 사라질 때 대처법 (1) | 2021.06.10 |
댓글