Gunicorn 서버에서 파일을 업데이트한 후 systemd 서비스를 다시 시작하는 방법은 무엇입니까?

Gunicorn 서버에서 파일을 업데이트한 후 systemd 서비스를 다시 시작하는 방법은 무엇입니까?

내 목표:

- 동일한 애플리케이션에서 여러 Python Flask 애플리케이션 제공개발하다섬기는 사람

- 서버 측 캐싱 없음

-Gunicorn 애플리케이션을 백그라운드 작업으로 실행

-nginx는 역방향 프록시 역할을 하며 호스트 이름으로 애플리케이션 인스턴스를 확인하며 모두 포트 80에서 실행됩니다.

systemd를 사용하여 백그라운드에서 Flask/Gunicorn 앱을 실행할 수 있다는 것을 깨달았습니다. 문제는 이 앱이 내 앱의 캐시된 버전을 제공하고 새 작업을 제출할 때마다 내 빌드의 새 버전을 제공하고 싶다는 것입니다. 실행 중 버전

systemd/system/website.com.service

[Unit]
Description=Gunicorn instance to serve website.com
After=network.target

[Service]
User=melcma
Group=www-data
PIDFile=/var/tmp/gunicorn.pid
WorkingDirectory=/var/www/website.com
Environment="PATH=/var/www/website.com/env/bin"
ExecStart=/var/www/website.com/env/bin/gunicorn --workers 1 --bind unix:website.com.sock -m 007 wsgi:app
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

내가 아는 한, "ExecReload=/bin/kill -s HUP $MAINPID" 줄은 내 서버를 다시 로드해야 하지만 파일 변경 시 이를 어떻게 트리거할 수 있습니까? ExecStart 명령에 "--reload"를 추가하려고 시도했지만 효과가 없었습니다.

그리고 보너스 질문이 있습니다:

systemd를 사용하는 것이 이를 달성하는 좋은 방법입니까, 아니면 오히려 서버를 손상시키겠습니까? (백그라운드에서 작업을 실행하고, gunicorn 인스턴스를 시작하고, 파일이 변경되면 자체적으로 새로 고쳐집니다.)

관련 정보