【发布时间】:2012-06-24 21:03:14
【问题描述】:
首先,我有很多 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 设置正确。
只要我使用带有 service app_name start 的 upstart, 应用就会启动然后停止。它甚至不写入日志文件。
这是 /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
那么这里的问题是什么?因为从命令行运行是可行的,但通过新贵运行却不行。而且我不知道哪里有问题?
【问题讨论】:
-
该死的,这令人沮丧,我确定我是瞎了还是什么,没有看到问题!
-
即使在运行这个 fomr 命令行 gunicorn_django -b $IP:$PORT -w $NUM_WORKERS \ --user=$USER --group=$GROUP --log-level=debug --log -file=$LOGFILE 2>>$LOGFILE 一切正常。一定是暴发户有问题?
标签: django nginx virtualenv gunicorn upstart