SECRET_KEY の環境変数を使用して、django 1.6 プロジェクトで gunicorn を制御するようにスーパーバイザーを構成したいと考えています。
秘密鍵を.bashrcに次のように設定しました
export SECRET_KEY=[my_secret_key]
そして、gunicorn を起動するためのシェル スクリプトがあります。
NAME="myproject"
LOGFILE=/home/django/myproject/log/gunicorn.log
LOGDIR=$(dirname $LOGFILE)
NUM_WORKERS=3
DJANGO_WSGI_MODULE=myproject.wsgi
USER=django
GROUP=django
IP=0.0.0.0
PORT=8001
echo "Starting $NAME"
cd /home/django/myproject/myproject
source /home/django/.virtualenvs/myproject/bin/activate
test -d $LOGDIR || mkdir -p $LOGDIR
exec gunicorn ${DJANGO_WSGI_MODULE} \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--log-level=debug \
--bind=$IP:$PORT
--log-file=$LOGFILE 2>>$LOGFILE
次に、スーパーバイザーでプロジェクトの gunicorn サーバーを構成します。
[program:my_django_project]
directory=/home/django/my_django_project/my_django_project
command=/home/django/my_django_project/my_django_project/gunicorn.sh
user=django
autostart=true
autorestart=true
stdout_logfile=/home/django/my_django_project/log/supervisord.log
stderr_logfile=/home/django/my_django_project/log/supervisor_error.log
シェル スクリプトを使用して gunicorn を起動すると、エラーはスローされませんが、スーパーバイザーで起動すると失敗し、SECRET_KEY が「見つからない」ことがログに表示されます。
シェル変数を読み取るようにスーパーバイザーを構成する正しい方法は何ですか (より適切な方法がない限り、それらを .bashrc に保持したくありません)。