티스토리 뷰
반응형
보통 C, Python과 같은 언어로 프로그램을 작성한 뒤 부팅 시 자동으로 실행되는 기능을 사용해야 할 때가 있다.
이렇게 실행되는 프로그램을 일반적으로 '데몬'이라고 부르는데 백그라운드 프로세스로 분류된다.
백그라운드 프로세스는 말 그대로 보이지 않는 곳에서 작동하는 프로그램이라고 이해하면 쉽다.
작동하는 것은 눈에 보이지 않고 print문을 찍어놔도 보이지 않는다. (코드 작성 방법에 따라 다르긴 함)
리눅스 서비스 등록방법
총 두가지 과정을 거친다.
1. 서비스 등록할 파일 만들기
2. 서비스 등록하기
서비스 등록할파일 만들기
sudo vi /etc/systemd/system/test.service
먼저 위와 같이 'test'라는 서비스 파일을 생성한다.
[Unit]
Description=Test Service
After=multi-user.target
[Service]
Type=idle
ExecStart=python3 /home/pi/test.py
[Install]
WantedBy=multi-user.target
실행할 명령어를 'ExecStart'에다가 적어준다.
Description은 원하는대로 적어주면 된다.
sudo chmod 644 /etc/systemd/system/test.service
서비스가 실행될 수 있도록 권한을 644로 변경해준다.
서비스 등록하기
sudo systemctl daemon-reload
sudo systemctl enable test.service
sudo reboot
서비스를 등록할 수 있도록 유닛파일을 생성했으니 부팅할 때 서비스가 실행될 수 있도록 등록해준다.
서비스 등록이 완료되었으면 재부팅한 뒤 'sudo systemctl status <서비스명>' 을 입력하면 현재
현재 실행상태를 등록할 수 있다.
정상적으로 서비스 등록이 완료되고 실행을 해보면 위와 같이 서비스가 정상적으로 등록되었고 실행됨을 알 수 있다.
보통 rc.local, profile.d, bash_completetion 등에 권장하는데 잘못 사용할 경우 SSH 클라이언트 세션 하나하나 다
실행될 가능성이 있다. 서비스로 등록해두면 최초 부팅시에만 실행되어 원하는대로 기능을 수행할 수 있다.
반응형
'Linux > Raspberry Pi' 카테고리의 다른 글
[fluidd pi] GPIO Control, PSU Control 버튼 만들기 (0) | 2022.09.16 |
---|---|
[Raspberry Pi] MySQL root 계정으로 로그인이 안될 때 (0) | 2021.09.13 |
[Raspberry Pi] octoprint 설치방법 (수동설치) (0) | 2019.01.23 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- C++
- 프로젝트
- 오픈소스 하드웨어
- 쏘카
- Arduino
- 3D
- DIY
- C언어
- 3D 프린터
- SQLITE3
- IOT
- 해커랭크
- Fusion 360
- ESP-IDF
- 라즈베리파이
- 코딩테스트
- 하드웨어
- fusion360
- 3d프린터
- 설계
- 오픈소스
- 리눅스
- 퓨전360
- ESP
- 3D Printer
- 아두이노
- 프린터
- esp32
- 자작
- Hypercube
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함