0

私はDjangoで2つのサイトを構築していますが、どちらもgunicornマネージドを使用していますsupervisor 2

Supervisord.conf :

[program:site1]
environment=PYTHONPATH="/home/www/virtualenv/site1/bin/:/home/www/site1/"
command=/home/www/virtual/site1/bin/gunicorn wsgi:app -b localhost:1234
directory=/home/www/site1/
...

[program:site2]
environment=PYTHONPATH="/home/www/virtualenv/site2/bin/:/home/www/site2/"
command=/home/www/virtual/site2/bin/gunicorn wsgi:app -b localhost:1235
directory=/home/www/site2/
...

この構成では、site2 が site1 の設定で開始しようとして、site2 の virtualenv にインストールされていないため、site1 に必要なパッケージが見つからないために失敗することに気付きました。PYTHONPATH2 つのサイトが混在しているために発生していると思います。独自の virtualenv のみを使用するように両方のサイトを適切にセットアップする方法は?

4

3 に答える 3

0

サイトごとに異なる構成ファイルを用意します。

于 2013-09-24T16:37:29.433 に答える
0

virtualenv を使用している場合は、ここで述べたようPATHに、 ではなく、 を変更するだけです。PYTHONPATH

于 2014-09-09T12:26:16.240 に答える
0

私は以下のように簡単な設定でテストします:-

[supervisord]

[program:a]
command = /bin/bash pa.sh
environment = PYTHONPATH=/tmp/a
stdout_logfile = /tmp/a.log

[program:b]
command = /bin/bash pb.sh
environment = PYTHONPATH=/tmp/b
stdout_logfile = /tmp/b.log

との両方が次のようpa.shになりpb.shます:-

while :
    do echo $PYTHONPATH
    sleep 2s
done

次に、supervisord を実行します:-

supervisord -c sp.cfg -n
2013-09-25 00:43:12,942 INFO supervisord started with pid 15362
2013-09-25 00:43:13,945 INFO spawned: 'a' with pid 15365
2013-09-25 00:43:13,948 INFO spawned: 'b' with pid 15366
2013-09-25 00:43:14,967 INFO success: a entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2013-09-25 00:43:14,968 INFO success: b entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 

チェック/tmp/a.logして/tmp/b.log:-

cat /tmp/a.log 
/tmp/a
/tmp/a
/tmp/a
/tmp/a

cat /tmp/b.log 
/tmp/b
/tmp/b
/tmp/b
/tmp/b

したがって、両方の環境が選択されます。監視バージョン - 3.0

于 2013-09-24T16:47:03.373 に答える