부팅시 flask 웹서버 구동

2021. 12. 2. 09:55IT관련

반응형

소개

요즘 flask 해보다가 집에도 웹서버를 하나 만들어 둘까 했다. 

flask로 웹페이지를 만들고 라즈베리파이가 부팅시 웹서버가 동작하도록 하려고 했다.

systemd에 service 등록을 해봐도 안되고 rc.local에 등록을 해도 안되고... ㅠㅠ

헛짓을 하다가 결국은 supervisor를 이용해서 성공했다.

supervisor는 UNIX 같은 os에서 프로세스를 모니터링 하거나 그 수를 컨트롤 하도록 해 주는 client/server system이라고 소개 되어 있다.

 

설치

Pip를 이용한 설치

$ pip install supervisor

Apt를 이용한 설치

$ sudo apt-get install supervisor

 

프로그램 등록

실행시킬 프로그램을 등록을 해야 한다. supervisord.conf 파일에 등록을 해야 하는데 일반적으로 아래의 경로에 존재한다.

../etc/supervisord.conf
../supervisord.conf
$CWD/supervisord.conf
$CWD/etc/supervisord.conf
/etc/supervisord.conf
/etc/supervisor/supervisord.conf

Windows INI 파일 스타일로 되어 있으며, 여기서는 등록할 프로세스의 타입을 section이라고 명칭한다.

나는 프로그램을 등록할 예정이라 [program:x] section 설정을 따른다.

[program:flask_app]
command = python xxxx.py
directory = /home/xxxx
autostart = true
autorestart = true
startsecs = 0 
; exited too quickly (process log may have details) 에러 발생하면 startsecs=0을 추가한다.

 

위 [program:flask_app]은 내 flask 웹서버를 등록해 둔 것이다.

 

실행

Supervisor를 구동 시키기 위해서는 다음과 같이 명령어를 실행시킨다.

$ sudo supervisorctl update

supervisorctl는 supervisor 프로세스를 관리하는 프로그램으로 몇가지 옵션이 있는데 여기서 update는 설정파일을 다시 로딩하고 내용 변경된 프로그램을 재 시작 하도록 한다.

 

상태 체크

$ sudo supervisorctl status
flask_app                        RUNNING   pid 1118, uptime 9:49:42

status 옵션을 이용하면 내가 등록한 프로그램이 어떤 상태인지 확인 할 수 있다.

 

 

반응형