From acc205fca9b2bd063b66ac559d27fd5c029949ef Mon Sep 17 00:00:00 2001 From: Renann Souza Date: Thu, 11 Mar 2021 17:09:54 -0300 Subject: [PATCH] Fix #3328 adiciona script supervisor/gunicorn (#3329) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix #3328 adiciona script supervisor/gunicorn * refatora codigo com mudanças sugeridas * Update gunicorn_start.sh Co-authored-by: Leandro Roberto Silva --- scripts/gunicorn_start.sh | 54 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 scripts/gunicorn_start.sh diff --git a/scripts/gunicorn_start.sh b/scripts/gunicorn_start.sh new file mode 100755 index 000000000..d01503235 --- /dev/null +++ b/scripts/gunicorn_start.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +# SCRIPT DE INICIALIZAÇÃO VIA SOKEFILE + +# As seen in http://tutos.readthedocs.org/en/latest/source/ndg.html + + +SAPL_DIR="/var/interlegis/sapl" + +# Seta um novo diretório foi passado como raiz para o SAPL +# caso esse tenha sido passado como parâmetro +if [ "$1" ] +then + SAPL_DIR="$1" +fi + +NAME="SAPL" # Name of the application (*) +DJANGODIR=$SAPL_DIR/ # Django project directory (*) +SOCKFILE=$SAPL_DIR/run/gunicorn.sock # we will communicate using this unix socket (*) +USER=`whoami` # the user to run as (*) +GROUP=`whoami` # the group to run as (*) +NUM_WORKERS=3 # how many worker processes should Gunicorn spawn (*) + # NUM_WORKERS = 2 * CPUS + 1 +TIMEOUT=60 +MAX_REQUESTS=100 # number of requests before restarting worker +DJANGO_SETTINGS_MODULE=sapl.settings # which settings file should Django use (*) +DJANGO_WSGI_MODULE=sapl.wsgi # WSGI module name (*) + +echo "Starting $NAME as `whoami` on base dir $SAPL_DIR" + +# Ativa ambiente virtual +cd $DJANGODIR +source $SAPL_DIR/../.virtualenvs/sapl/bin/activate + +export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE +export PYTHONPATH=$DJANGODIR:$PYTHONPATH + +# Create the run directory if it doesn't exist +RUNDIR=$(dirname $SOCKFILE) +test -d $RUNDIR || mkdir -p $RUNDIR + +# Start your Django Unicorn +# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon) +exec gunicorn ${DJANGO_WSGI_MODULE}:application \ + --name $NAME \ + --log-level debug \ + --timeout $TIMEOUT \ + --workers $NUM_WORKERS \ + --max-requests $MAX_REQUESTS \ + --user $USER \ + --access-logfile /var/log/sapl/access.log \ + --error-logfile /var/log/sapl/error.log \ + --bind=unix:$SOCKFILE +