Lastupdate : 아직 미수행
리눅스나 스크립트에 익숙하지 않더라도 라즈베리파이 부팅 시 파이썬 스트림릿(Streamlit) 웹서버가 자동으로 실행되도록 만드는 가장 표준적이고 안전한 방법인 Systemd 서비스 등록 방법을 차근차근 배워 볼까?.
🛠️ 자동 실행 설정 단계 (따라 하기)
1단계: 서비스 설정 파일 만들기
라즈베리파이 터미널 창을 열고 아래 명령어를 입력하여 시스템 서비스 파일을 생성한다. (여기서는 서비스 이름을 streamlit.service로 지정한 다치고.)
sudo nano /etc/systemd/system/streamlit.service
2단계: 아래 내용을 복사해서 붙여 넣기
창이 열리면 아래 내용을 그대로 복사해서 붙여 넣어 준다. (단, 본인의 라즈베리파이 사용자 계정이 pi가 아니거나 스트림릿 파일 경로가 다르다면 User, WorkingDirectory, ExecStart 경로를 본인 환경에 맞게 수정하자.)
Ini, TOML
[Unit]
Description=Streamlit Web Server
After=network.target
[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/myApp
ExecStart=/usr/local/bin/streamlit run app.py --server.address=0.0.0.0
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
- WorkingDirectory: 스트림릿 소스 코드가 들어있는 폴더 경로
- ExecStart: 스트림릿을 실행하는 명령어 경로 (보통 /usr/local/bin/streamlit 또는 python3 -m streamlit)
- --server.address=0.0.0.0: 라즈베리파이 내부뿐만 아니라 공유기에 연결된 다른 PC나 스마트폰에서도 웹서버에 접속할 수 있게 해주는 설정이다.
수정 후 저장하는 법: 키보드의 Ctrl + O를 누르고 Enter를 쳐서 저장한 뒤, Ctrl + X를 눌러 편집기를 빠져나온다.
3단계: 시스템에 서비스 등록 및 활성화하기
새로 만든 서비스를 리눅스 시스템에 인식시키고, 부팅 시 자동 실행되도록 설정하는 명령어들을 순서대로 입력한다.
# 1. 시스템에 새 서비스 파일 등록 새로고침
sudo systemctl daemon-reload
# 2. 부팅 시 자동 실행(Enable) 설정
sudo systemctl enable streamlit.service
# 3. 지금 당장 서비스 실행해 보기
sudo systemctl start streamlit.service
4단계: 정상 작동 확인하기
웹서버가 백그라운드에서 오류 없이 잘 돌고 있는지 아래 명령어로 상태를 확인한다.
sudo systemctl status streamlit.service
- 중간에 초록색 글씨로 Active: active (running) 이 표시되면 성공적으로 실행 중인 것!
- 나가고 싶을 때는 키보드의 q를 누르면 된다.
이제 라즈베리파이를 재부팅(sudo reboot) 하더라도 전원이 켜지면서 스트림릿 웹서버가 자동으로 백그라운드에서 실행될 거다.
앞서 설명한 내용 중 Ini, TOML은 뭘까?
프로그램이나 시스템의 환경 설정 파일(Configuration File)의 포맷(형식)을 뜻한다.
파이썬이나 라즈베리파이에서 프로그램을 만들다 보면 서버 주소, 포트 번호, 비밀번호, 화면 위치 같은 다양한 설정값을 코드 외부에 따로 저장해 두어야 할 때가 많다. 이때 주로 사용하는 대표적인 설정 파일 형식들입니다.
📝 설정 파일 포맷이란?
- INI 형식 (.ini)
- 윈도우 프로그램 등에서 아주 오래전부터 쓰여온 전통적인 방식.
- 대괄호로 카테고리를 나누고 키=값 형태로 간단하게 작성한다.
- 예시:
-
Ini, TOML
[Server] ip = 192.168.1.10 port = 502
- TOML 형식 (.toml)
- 최근 파이썬 진영(특히 스트림릿이나 패키지 관리 도구 등)에서 설정 파일로 매우 선호하는 최신 포맷.
- 사람이 읽기 매우 쉽고 구조화된 데이터(주석, 숫자, 리스트 등)를 깔끔하게 표현할 수 있다.
- 예시:
-
Ini, TOML
[server] address = "0.0.0.0" port = 8501 enableCORS = false
라즈베리파이에서 스트림릿(Streamlit) 같은 웹서버나 파이썬 프로그램을 실행할 때, 설정을 코드에 직접 적어두지 않고 이런 INI나 TOML 같은 설정 파일에 따로 적어둔 뒤 불러와서 사용하면 나중에 설정을 바꿀 때 코드를 고칠 필요 없이 파일만 수정하면 되기 때문에 매우 편리할걸!
'프로그램 > Raspberry Pi' 카테고리의 다른 글
| [RaspberryPi] 어드벤텍(Advantech)의 UNO-220 RS232 Seria 통신 (0) | 2026.08.28 |
|---|---|
| [RaspberryPi] 시리얼(Serial) 포트 확인 (0) | 2026.08.28 |
| [RaspberryPi] C# Visual Studio에서 프로젝트 생성 및 Linux에 배포 (0) | 2026.08.24 |
| [RaspberryPi] PSCP 를 이용한 Windows에서 Linux 로 복사 (0) | 2026.08.19 |
| [RaspberryPi] 설치 후 한글 깨짐 해결 방법 (0) | 2026.08.19 |
| [RaspberryPi] 라이더(Rider) IDE (0) | 2026.08.19 |
| [RaspberryPi] .net8 설치 (0) | 2026.08.19 |
| [RaspberryPi] Network error: Software caused connection abort (0) | 2026.08.19 |
| [Raspberry Pi] 유선. 무선 Network 설정 (0) | 2026.08.13 |
| [Raspberry Pi] 4 B 모델의 사용 가능한 SD카드 용량 (0) | 2026.08.11 |














