Как запустить gunicorn при запуске экземпляра EC2? - PullRequest
1 голос
/ 02 апреля 2019

Я пытаюсь запустить gunicorn при запуске внутри моего экземпляра EC2, я создал myproject.service файл в /lib/systemd/system/, который выглядит следующим образом.

[Unit]
Description="my startup file"

[Service]
WorkingDirectory=/home/ubuntu/myproject
Type=simple
ExecStart=/home/ubuntu/.local/bin/gunicorn -w 1 -b 0.0.0.0:8080 wsgi:application

[Install]
WantedBy=multi-user.target

Чтобы проверить, работает ли он, явыполняли эти команды

sudo systemctl daemon-reload

sudo systemctl start myproject

sudo systemctl status myproject

это возвращает ошибку

Apr 02 09:14:13 ip-172-31-32-45 gunicorn[5827]:   File "/home/ubuntu/.local/bin/gunicorn", line 7, in <module>
Apr 02 09:14:13 ip-172-31-32-45 gunicorn[5827]:     from gunicorn.app.wsgiapp import run
Apr 02 09:14:13 ip-172-31-32-45 gunicorn[5827]: ModuleNotFoundError: No module named 'gunicorn'
Apr 02 09:14:13 ip-172-31-32-45 systemd[1]: myproject.service: Main process exited, code=exited, status=1/FAILURE
Apr 02 09:14:13 ip-172-31-32-45 systemd[1]: myproject.service: Failed with result 'exit-code'.

Я использовал which gunicorn, чтобы вернуть абсолютный путь, поэтому я не понимаю, почему Gunicorn не найден

1 Ответ

1 голос
/ 02 апреля 2019

Я закончил тем, что создал виртуальную среду, и тогда все работало замечательно, в итоге это был мой служебный файл внутри /lib/systemd/system

# myproject.service

[Service]
WorkingDirectory=/home/ubuntu/myproject
Type=simple
Environment="PATH=/home/ubuntu/myproject/venv36/bin"
ExecStart=/home/ubuntu/myproject/venv36/bin/gunicorn -w 1 -b 0.0.0.0:8080 wsgi:application --daemon

[Install]
WantedBy=multi-user.target

...