Report this

What is the reason for this report?

How to fix gunicorn.service: Failed to load environment files: Is a directory

Posted on October 15, 2020

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?



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!

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.

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

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.