# Setting up Gunicorn for Django Project - 203/EXEC

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: 1. The project files are owned by the “arya” user 2. The WorkingDirectory is definitely the home directory for my django project 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