[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 등이 존재
[참고]
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 |