Prima di tutto ho molte istanze di Django installate e funzionanti in questo modo.Gunicorn e Django con Upstart e Nginx
In ogni progetto che ho uno script di shell che inizia script.sh gunicorn ecc .:
#!/bin/bash
set -e
LOGFILE=/var/log/gunicorn/app_name.log
LOGDIR=$(dirname $LOGFILE)
NUM_WORKERS=3
# user/group to run as
USER=root
GROUP=root
PORT=8060
IP=127.0.0.1
cd /var/www/webapps/app_name
source ../bin/activate
test -d $LOGDIR || mkdir -p $LOGDIR
exec /var/www/webapps/bin/gunicorn_django -b $IP:$PORT -w $NUM_WORKERS \
--user=$USER --group=$GROUP --log-level=debug --log-file=$LOGFILE 2>>$LOGFILE
Quando si esegue lo script da riga di comando con bash script.sh, il sito funziona perfettamente, così Nginx è impostato correttamente.
Non appena utilizzo startstart con il servizio , nome app nome avvia l'applicazione e quindi si interrompe. Non scrive nemmeno nel file di registro.
Questo è il file diapp_name.conf in /etc/init/app_name.conf:
description "Test Django instance"
start on runlevel [2345]
stop on runlevel [06]
respawn
respawn limit 10 5
exec /var/www/webapps/app_name/script.sh
Allora, qual è il problema? Perché l'esecuzione dalla riga di comando funziona, ma non lo fa con upstart. E non so dove vedere cosa non va?
Accidenti questo è frustrante, sono sicuro che cieco o qualcosa e non vedere il problema! – Harry
Anche quando si esegue questa riga di comando fomr gunicorn_django -b $ IP: $ PORT -w $ NUM_WORKERS \ --user = $ USER --group = $ GROUP --log-level = debug --log-file = $ LOGFILE 2 >> $ LOGFILE tutto funziona. Deve essere che il upstart è il problema? – Harry