2017-12-12 14 views
0

gunicornとsupervisordからDjangoアプリケーションを実行しようとしています。私は正常に動作しているGUIを見ることができますが、私はsupervisorctlからこのアプリケーションを開始しようとしていたgunicornからアプリケーションを実行するbashスクリプトを設定しました。私はGUIを見ることができません。しかし、Gunicornプロセスは実行されています。GunicornとSupervisorでDjangoアプリケーションが実行されていません

gunicorn_start2

#!/bin/bash 
export ANALYTICS_ENV="dev" 
NAME="analytics"         # Name of the application 
DJANGODIR=/home/ubuntu/code/current/analytics/analytics/analysis/    # Django project directory 
SOCKFILE=/home/ubuntu/code/current/analytics/analytics/run/gunicorn.sock # we will communicte using this unix socket 
USER=ubuntu          # the user to run as 
GROUP=ubuntu          # the group to run as 
NUM_WORKERS=3          # how many worker processes should Gunicorn spawn 
DJANGO_SETTINGS_MODULE=analytics.settings    # which settings file should Django use 
DJANGO_WSGI_MODULE=analytics.wsgi      # WSGI module name 

echo "Starting $NAME as `whoami`" 

# Activate the virtual environment 
cd $DJANGODIR 
echo $DJANGODIR 
source /home/ubuntu/code/current/analytics/analytics/bin/activate 
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE 
#export PYTHONPATH=$DJANGODIR:$PYTHONPATH 
#export PYTHONPATH=/home/ubuntu/code/analytics/bin/python 
# Create the run directory if it doesn't exist 
RUNDIR=$(dirname $SOCKFILE) 
test -d $RUNDIR || mkdir -p $RUNDIR 

# Start your Django Unicorn 
# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon) 
exec /home/ubuntu/code/current/analytics/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \ 
    --name $NAME \ 
    --workers $NUM_WORKERS \ 
    --user=$USER --group=$GROUP \ 
    --bind=unix:$SOCKFILE \ 
    --log-level=all \ 
    --log-file=- 

gunicorn_start.conf

[program:analytics] 
command = bash /home/ubuntu/code/current/analytics/analytics/analysis/gunicorn_start2     ; Command to start app 
user = ubuntu         ; User to run as 
stdout_logfile = /home/ubuntu/code/current/analytics/analytics/analysis/gunicorn_start2.log ; Where to write log messages 
redirect_stderr = true            ; Save stderr in the same log 
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8,ANALYTICS_ENV=dev      ; Set UTF-8 as default encoding 

Gunicornプロセス:

(analytics) [email protected]:~/code/current/analytics/analytics/analysis$ ps aux | grep [g]unicorn 
ubuntu 16039 0.3 0.9 57152 18436 ?  S 14:47 0:00 /home/ubuntu/code/current/analytics/bin/python2 /home/ubuntu/code/current/analytics/bin/gunicorn analytics.wsgi:application --name analytics --workers 3 --user=ubuntu --group=ubuntu --bind=unix:/home/ubuntu/code/current/analytics/analytics/run/gunicorn.sock --log-level=all --log-file=- 
ubuntu 16050 1.1 2.3 276744 48792 ?  Sl 14:47 0:00 /home/ubuntu/code/current/analytics/bin/python2 /home/ubuntu/code/current/analytics/bin/gunicorn analytics.wsgi:application --name analytics --workers 3 --user=ubuntu --group=ubuntu --bind=unix:/home/ubuntu/code/current/analytics/analytics/run/gunicorn.sock --log-level=all --log-file=- 
ubuntu 16053 1.1 2.3 276760 47212 ?  Sl 14:47 0:00 /home/ubuntu/code/current/analytics/bin/python2 /home/ubuntu/code/current/analytics/bin/gunicorn analytics.wsgi:application --name analytics --workers 3 --user=ubuntu --group=ubuntu --bind=unix:/home/ubuntu/code/current/analytics/analytics/run/gunicorn.sock --log-level=all --log-file=- 
ubuntu 16056 1.1 2.3 276768 47228 ?  Sl 14:47 0:00 /home/ubuntu/code/current/analytics/bin/python2 /home/ubuntu/code/current/analytics/bin/gunicorn analytics.wsgi:application --name analytics --workers 3 --user=ubuntu --group=ubuntu --bind=unix:/home/ubuntu/code/current/analytics/analytics/run/gunicorn.sock --log-level=all --log-file=- 
(analytics) [email protected]:~/code/current/analytics/analytics/analysis$ 

問題は環境変数であると思われます。私が実行しようとしているときpython manage.py runserverその時も動作しないので。しかし、私が実行しているときANALYTICS_ENV=dev python manage.py runserverそれは働いている。

しかし、私はとにかくガンコーンで実行することはできません。

+0

"'のpython manage.pyのrunserver'が動作していません"。どうやって? いくつかのログ/トレースバックを提供できますか? – vmonteco

+0

環境変数をエクスポートするか、またはその下の部分の前にスタックすると機能します。 'システムチェックを実行しています... システムチェックで問題は見つかりませんでした(0は消音)。 12月12日、2017 - 15:29:09 設定 'analytics.settings'を使用してDjangoバージョン1.9 http://127.0.0.1:8000/ で開発サーバーを起動してくださいCONTROL-Cを使用してサーバーを終了してください。 ' –

+0

Gunicornは、PYTHONPATHのexport PYTHONPATH = "/ home/ubuntu/code/current/analytics/bin/python"をエクスポートした後で動作します。スクリプトからはまだ実行できません。 –

答えて

0

これは以下の手順で解決されました。

  1. ソースvirtualenvの
  2. 輸出ANALYTICS_ENV。
  3. virtualenvのPYTHONPATHをエクスポートします。

スーパーバイザ構成:

[program:analytics] 
command = gunicorn analytics.wsgi:application --name analytics --workers 4 --user=ubuntu --timeout=3600 --bind 127.0.0.1:8000 ; Command to start app 
user = ubuntu ; User to run as 
stdout_logfile = /home/code/example/gunicorn_start2.log ; Where to write log messages 
redirect_stderr = true ; Save stderr in the same log 
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8,ANALYTICS_ENV=dev,PYTHONPATH=/home/ubuntu/code/current/analytics/bin/python ; Set UTF-8 as default encoding 
関連する問題