When i run

sudo journalctl -u gunicorn

I get:

Oct 14 12:49:22 my-server-thing systemd[1]: gunicorn.service: Failed to load environment files: Is a directory
Oct 14 12:49:22 my-server-thing systemd[1]: gunicorn.service: Failed to run 'start' task: Is a directory
Oct 14 12:49:22 my-server-thing systemd[1]: gunicorn.service: Failed with result 'resources'.
Oct 14 12:49:22 my-server-thing systemd[1]: Failed to start gunicorn daemon.

I suppose something doesn’t add up with my directories. I have /etc/systemd/system/gunicorn.service which is:

[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target

[Service]
User=myname
Group=myname
EnvironmentFile=/home/myname/myapp/env
WorkingDirectory=/home/myname/myapp
ExecStart=/home/myname/myapp/env/bin/gunicorn \
          --access-logfile - \
          --workers 3 \
          --bind unix:/run/gunicorn.sock \
          myapp.wsgi:application

[Install]
WantedBy=multi-user.target

The directories I’m working in are as follows.

myapp/ 

has my requirements.txt file, my env, and another app/ dir. Within myapp/app, I have manage.py and another app/ env. Within myapp/app/app, I have settings.py and wsgi.py.

What am I doing wrong?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
1 answer

For more clarification, Even if you have your environmental variables exported in ~/.bashprofile or ~/.bashrc you need to have the environment defined for the service. You can use those files by adding EnviromentFile=home/user/.bashprofile to the [Service] block

Submit an Answer