首先,我有很多 Django 实例像这样设置和运行。
在每个项目中,我都有一个启动 gunicorn 等的 script.sh shell 脚本:
#!/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
当使用bash script.sh从命令行运行此脚本时,该站点运行良好,因此 Nginx 设置正确。
一旦我使用 upstart 和service app_name start应用程序就会启动然后停止。它甚至不写入日志文件。
这是/etc/init/app_name.conf中的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
那么这里的问题是什么?因为从命令行运行是可行的,但通过新贵运行却不行。而且我不知道在哪里可以看到有什么问题?