시스템이 재부팅되거나 시작될 때마다 여러 개의 gunicorn 서버를 자동으로 실행하고 싶고 백그라운드에서도 이러한 서버는 일반적으로 플라스크 서버입니다.
문제
- 시스템 서비스를 수동으로 시작하는 동안 gunicorn 서버를 실행할 수 있지만 아래에 언급된 첫 번째 서버만 실행하고 이후에 다음 서비스를 시작하지 않습니다.
- 시스템을 재부팅하거나 시작할 때마다 서비스가 자동으로 시작되지 않습니다.
Start.sh
base_gunicorn=/X/Y/anaconda3/envs/msclone/bin/gunicorn
cd ${base_path}"/ms/some_service1/"
${base_gunicorn} -b 0.0.0.0:8000 -w 1 --log-file some_service1.log wsgi:app >/dev/null 2>&1 &
cd ${base_path}"/ms/some_service2/"
${base_gunicorn} -b 0.0.0.0:8001 -w 1 --log-file some_service2.log wsgi:app >/dev/null 2>&1 &
myservice.service
[Service]
ExecStart=/X/Y/start.sh
RestartSec=2
답변1
#gunicorn1.서비스 [제공하다] 런타임 디렉터리=gunicorn1 사용자=구니콘 유형=단순 작업 디렉터리=/X/Y/anaconda3/envs/ms/some_service1/ ExecStart=/X/Y/anaconda3/envs/msclone/bin/gunicorn -b 0.0.0.0:8000 -w 1 wsgi:app 다시 시작 초=2
#gunicorn2.service [제공하다] 런타임 디렉터리=gunicorn2 사용자=구니콘 유형=단순 작업 디렉터리=/X/Y/anaconda3/envs/ms/some_service2/ ExecStart=/X/Y/anaconda3/envs/msclone/bin/gunicorn -b 0.0.0.0:8001 -w 1 wsgi:app 다시 시작 초=2
doco에 따라 적절한 소켓 유닛을 만듭니다. Wanted-By=
이러한 기능을 활성화/비활성화할 수 있는 기능을 [install]
콘센트 장치 섹션에 배치하세요. 이것은소켓 유닛서비스 장치가 아닌 자동 시작이 필요합니다 - 다시 doco에 따라.
추가 읽기
- 조나단 데보인 폴라드(2016). "두 개의 서비스가 있는 경우 두 서비스를 모두 정의하십시오.".
systemd
공포의 집. 일반적인 답변. - http://docs.gunicorn.org/en/stable/deploy.html#systemd