I am attempting to deploy a Django web application for the first time using NGINIX, Gunicorn and Supervisor on Digital Ocean Ubuntu 16.04 server. I am following the this linked tutorial.
I am having a trouble configuring Supervisor. When running this command...
sudo supervisorctl status automatedre
I get this error...
automatedre FATAL Exited too quickly (process log may have details)
The log file shows this...
supervisor: couldn't exec /home/automatedre/gunicorn_start: ENOENT
supervisor: child process was not spawned
supervisor: couldn't exec /home/automatedre/gunicorn_start: ENOENT
supervisor: child process was not spawned
/home/automatedre/gunicorn_start
#!/bin/bash
NAME="django_automatedre"
DIR=/home/automatedre/automatedre
USER=automatedre
GROUP=automatedre
WORKERS=3
BIND=unix:/home/automatedre/run/gunicorn.sock
DJANGO_SETTINGS_MODULE=automatedre.settings
DJANGO_WSGI_MODULE=automatedre.wsgi
LOG_LEVEL=error
cd $DIR
source ../venv/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DIR:$PYTHONPATH
exec ../venv/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $WORKERS \
--user=$USER \
--group=$GROUP \
--bind=$BIND \
--log-level=$LOG_LEVEL \
--log-file=-
/etc/supervisor/conf.d/automatedre.conf
[program:automatedre]
command=/home/automatedre/gunicorn_start
user=automatedre
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/home/automatedre/logs/gunicorn.log
I'm not sure where to go from here. I don't believe it is a file permission issue since I previously changed permission on gunicorn_start with this...
chmod u+x gunicorn_start
Any ideas on where I'm going wrong?
I previously left out the text below from the log file because I didn't think it was relevant...mistake.
/home/automatedre/gunicorn_start: 2: /home/automatedre/gunicorn_start: ^M: not found
/home/automatedre/gunicorn_start: 12: /home/automatedre/gunicorn_start: ^M: not found
/home/automatedre/gunicorn_start: 13: cd: can't cd to /home/automatedre/automatedre^M
/home/automatedre/gunicorn_start: 14: /home/automatedre/gunicorn_start: source: not found
/home/automatedre/gunicorn_start: 15: /home/automatedre/gunicorn_start: ^M: not found
/home/automatedre/gunicorn_start: 18: /home/automatedre/gunicorn_start: ^M: not found
/home/automatedre/gunicorn_start: 19: exec: ../venv/bin/gunicorn: not found
I initially created the /home/automatedre/gunicorn_start and /etc/supervisor/conf.d/automatedre.conf in my Brackets text editor on my windows machine which created this issue.
After doing some more digging, I learned that Windows/MS-DOS uses CR+LF to indicate end-of-lines and UNIX uses LF character to indicate line termination (EOL character).
This difference resulted in the ^M at the end of each line causing the file path not found error.
Recreating each file from the terminal with nano solved the issue.