Прежде всего, у меня есть множество экземпляров Django, которые работают так.Gunicorn и Django с Upstart и Nginx
В каждом проекте у меня есть скрипт, который начинается script.sh gunicorn и т.д .:
#!/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
При выполнении этого сценария из командной строки с Баш script.sh, сайт работает отлично, поэтому Nginx настроен правильно.
Как только я использую выскочку с сервис app_name запускает приложение, а затем просто останавливается. Он даже не записывает в файл журнала.
Это app_name.conf файл в /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
Так что здесь проблема? Причина, запущенная из командной строки, работает, но выполнение выскочки не выполняется. И я не знаю, где посмотреть, что случилось?
Черт возьми, это разочаровывает, я уверен, что я слепой или что-то и не вижу проблемы! – Harry
Даже при запуске этой командной строки fomr gunicorn_django -b $ IP: $ PORT -w $ NUM_WORKERS \ --user = $ USER --group = $ GROUP --log-level = debug --log-file = $ LOGFILE 2 >> $ LOGFILE все работает. Должно быть, что выскочка - это проблема? – Harry