IT/linux

Gunicorn X Supervisor

준나이 2018. 10. 15. 19:04

[COMMON]


Gunicorn : deamon
Supervisor : super-deamon (daemon을 관장하는 daemon)
-> Gunicorn으로 process를 daemon 형태로 띄우고 Supervisor로 daemon들을 관리


[GUNICORN]


gunicorn을 실행시킬 start.sh를 생성


start.sh
exec usr/bin/gunicorn -w 2 --bind 10.52.111.170:8870 server:app

-w : worker의 수 (thread) 설정 (flask 기준으로 이 명령어를 위해선 app run 할 때 thread=True해야함)
--bind : 실행시킬 host:port를 입력
:app 어느 file을 app으로 쓸것인가? (if server.py -> server:app)


[SUPERVISOR]


supervisord.conf를 수정하여 gunicorn을 실행시킬 start.sh를 등록해줘야한다.

''' # supervisord.conf
program:programme_name
# program: 뒤에 적힌 변수명은 supervisor실행할 때 쓰일 programme_name으로 등록된다.
command =/home/user_name/project_name/start.sh
# 실행시킬 .sh의 위치
directory =/home/user_name/project_name
# 실행시킬 파일들이 위치한 directory
autostart=true
autorestart=true
user=root
stdout_logfile=/var/log/programme_name/ghost.log
# stdout과 관련된 log file이 쌓이는 경로
stderr_logfile=/var/log/programme_name/ghost_err.log
# stderr과 관련된 log file이 쌓이는 경로
'''


supervisorctl restart programme_name
수정 후 supervisorctl restart를 해줘야 supervisor에 반영된다.
supervisorctl start/restart/status/update 등이 존재



[참고]


Daemon vs. Crontab

http://joonable.tistory.com/4?category=681594

'IT > linux' 카테고리의 다른 글

ubuntu에서 python cx_oracle로 oracle 접근  (1) 2019.10.16
리눅스에 프로그램 설치하기  (0) 2018.10.16
chmod /chown  (0) 2018.10.15
Daemon vs. Crontab  (0) 2018.10.15