venv\bin\gunicorn_start:
#!/bin/bash
NAME='myproject'
DJANGODIR=/apps/webapp/myproject
SOCKFILE=/apps/webapp/run/gunicorn.sock
USER=someuser
GROUP=somegroup
NUM_WORKERS=3
DJANGO_SETTINGS_MODULE=myproject.settings
DJANGO_WSGI_MODULE=myproject.wsgi
TIMEOUT=120
echo "Current directory: $(pwd)"
echo "Activating virtual environment..."
source /root/apps/webapp/venv/bin/activate
echo "Activated virtual environment."
echo "Exporting Django settings..."
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH
echo "Django settings exported."
RUNDIR=$(dirname $SOCKFILE)
echo "Creating run directory: $RUNDIR"
test -d $RUNDIR || mkdir -p $RUNDIR
echo "Executing gunicorn..."
exec /root/apps/webapp/venv/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--timeout $TIMEOUT \
--user=$USER --group=$GROUP \
--bind=unix:$SOCKFILE \
--log-level=debug \
--log-file=-
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
application = get_wsgi_application()