Toy Project

안 쓰는 노트북으로 홈 서버 만들기(2) - Streamlit 자동 실행 및 백그라운드 설정

Super-Son 2025. 3. 17. 00:55

안녕하세요! 지난 글에서는 안 쓰던 노트북으로 SSH 연결을 설정하는 방법을 소개했습니다. 이번에는 노트북으로 Streamlit 앱을 자동으로 실행하고 백그라운드에서 유지하는 방법을 소개하겠습니다. (실행할 코드가 있다고 가정하고 정리했습니다.)

 


 

1. Cursor에서 SSH로 원격 서버 접속

먼저 Cursor IDE에서 SSH로 노트북(서버)에 접속합니다. 1편의 설정을 완료했다면, Cursor에서 터미널을 열고 아래 과정을 따라하면 됩니다.

 

2. Streamlit 백그라운드 실행

터미널에서 Streamlit 코드를 실행할 경우 터미널이 꺼지면 코드도 종료됩니다. PowerShell에서 다음과 같이 실행하면 터미널이 꺼져도 코드가 실행되도록 Streamlit 앱을 백그라운드에서 실행할 수 있습니다.

Start-Process -FilePath "C:\경로\가상환경폴더\Scripts\streamlit.exe" -ArgumentList "run C:\경로\streamlit_app.py" -WindowStyle Hidden

 

3. 자동 실행 세팅

3-1. 배치 파일(.bat) 파일 만들기

서버로 사용 중인 노트북이 재부팅되더라도 Streamlit 앱이 자동으로 실행되게 설정하는 방법입니다. 우선, Streamlit 앱을 실행하는 간단한 배치 파일(.bat)을 만듭니다. 코드를 작성하는 방법은 다양하겠지만 저는 만들어 둔 가상환경에서 Streamlit을 실행하고 싶어서 아래와 같이 만들었습니다. 경로와 사용자명은 본인의 환경에 맞게 수정해야 합니다.

@echo off
call C:\경로\가상환경폴더\Scripts\activate.bat
powershell -WindowStyle Hidden -Command "streamlit run C:\경로\to\your_app.py"

 

3-2. 자동 시작 등록하기

  1. Win + R 키를 눌러 'shell:startup'을 입력하여 자동 시작 폴더를 엽니다.
  2. 방금 만든 Streamlit 실행 파일(.bat)을 이 폴더에 붙여 넣으면, 윈도우가 시작될 때 자동으로 실행됩니다.

 


 

번외: 터미널에서 프로세스 확인 및 종료하기프로세스 확인하기

터미널(PowerShell)에서 다음 명령어를 실행하면 현재 실행 중인 Streamlit 앱을 확인하고 종료할 수있습니다.

# 실행중인 python 프로세스 확인
Get-Process -Name python

# 프로세스 ID로 종료
Stop-Process -Id 프로세스번호

# 프로세스 이름으로 종료
Stop-Process -Name python

Get-Process -Name python 출력 결과 (예시)
Get-Process -Name python 출력 결과 (예시)


 

세팅한 홈 서버에서 Streamlit 자동 실행 및 백그라운드 실행 방법을 알아보았습니다. 앞으로 세팅한 서버로 여러 토이 프로젝트를 해보려고 합니다. 오늘도 읽어주셔서 감사합니다.