Hi everyone,
I’m trying to follow this tutorial on hosting my django app: https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04#prerequisites-and-goals
I’m on the step “Check for the Gunicorn Socket File” - everything before that has been very successful. However, when I try this step, I just get an unhelpful error message.
Here is my /etc/systemd/system/gunicorn.service file:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=arya
Group=www-data
WorkingDirectory=/home/arya/measuring_polyphony_django
ExecStart=/home/arya/envs/polyphonynev/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/arya/measuring_polyphony_django/measuring_polyphony.sock measuring_polyphony.wsgi:application
[Install]
WantedBy=multi-user.target
Here’s the message I get when I run sudo systemctl status gunicorn
arya@polyphony:~$ sudo systemctl status gunicorn
● gunicorn.service - gunicorn daemon
Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2017-05-27 16:04:09 UTC; 13min ago
Main PID: 9039 (code=exited, status=203/EXEC)
May 27 16:04:09 polyphony systemd[1]: Started gunicorn daemon.
May 27 16:04:09 polyphony systemd[1]: gunicorn.service: Main process exited, code=exited, status=203/EXEC
May 27 16:04:09 polyphony systemd[1]: gunicorn.service: Unit entered failed state.
May 27 16:04:09 polyphony systemd[1]: gunicorn.service: Failed with result 'exit-code'.
There is no measuring_polyphony.sock file either.
Here’s what sudo journalctl -u gunicorn says:
May 27 16:04:09 polyphony systemd[1]: Started gunicorn daemon.
May 27 16:04:09 polyphony systemd[1]: gunicorn.service: Main process exited, code=exited, status=203/EXEC
May 27 16:04:09 polyphony systemd[1]: gunicorn.service: Unit entered failed state.
May 27 16:04:09 polyphony systemd[1]: gunicorn.service: Failed with result 'exit-code'.
So not much more helpful than the previous command. To go through all the things that were listed as could go wrong in the guide:
arya@polyphony:~$ ls /home/arya/measuring_polyphony_django
importer.py measuring.csv media my_project_visualized.png schema.png static viewer
manage.py measuring_polyphony mei_files __pycache__ secrets.py templates
3a. The path to Gunicorn is the correct one for my virtualenv (and the one I used to test gunicorn earlier in the tutorial)
arya@polyphony:~$ source ~/envs/polyphonynev/bin/activate
(polyphonynev) arya@polyphony:~$ which gunicorn
/home/arya/envs/polyphonynev/bin/gunicorn
3b. The directory in the --bind option is definitely able to be created (I tested by running nano and saving a random file to the directory)
3c. The “measuring_polyphony.wsgi” setting definitely translates to this folder in the WORKING_DIRECTORY
(polyphonynev) arya@polyphony:~/measuring_polyphony_django$ ls measuring_polyphony/wsgi.py
measuring_polyphony/wsgi.py
Does anyone else see what could be wrong with this? Thank you!
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
I was also experiencing the same issue; added --log-level debug to ExecStart and was able to find that the environment variables weren’t being loaded, added EnvironmentFile=path\to\.env to the [Service] section and was able to fix the problem.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.