3

http://docs.dotcloud.com/guides/daemons/の状態:

Configuring The Environment
You can easily modify the environment of execution of your daemon with the “directory” and “environment” directives to change the directory where the command is executed and to define additional environment variable. For example:

[program:daemonname]
command = php my_daemon.php
directory = /home/dotcloud/current/
environment = QUEUE=*, VERBOSE=TRUE

ただし、PYTHONPATH 環境変数が設定されていないことがわかりました。

dotcloud.yml:

www:
  type: python
db:
  type: postgresql
worker:
  type: python-worker

Supervisord.conf:

[program:apnsd]
command=/home/dotcloud/current/printenv.py
environment=PYTHONPATH=/home/dotcloud/current/apnsd/

printenv.py

#! /home/dotcloud/env/bin/python
import os
print "ENVIRONMENT"
print os.environ

ログ:

    ENVIRONMENT
    {'SUPERVISOR_ENABLED': '1', 'SUPERVISOR_SERVER_URL': 'unix:///var/dotcloud/super
    visor.sock', 'VERBOSE': 'no', 'UPSTART_INSTANCE': '', 'PYTHONPATH': '/', 'PREVLE
    VEL': 'N', 'UPSTART_EVENTS': 'runlevel', '/': '/', 'SUPERVISOR_PROCESS_NAME': 'a
    pnsd', 'UPSTART_JOB': 'rc', 'PWD': '/', 'SUPERVISOR_GROUP_NAME': 'apnsd', 'RUNLE
    VEL': '2', 'PATH': '/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    ', 'runlevel': '2', 'previous': 'N'}

変更された python 変数を表示しないでください!

4

1 に答える 1

3

Supervisor にはバグがあります。一部の変数 ( を含むものなど/) は引用符で囲む必要があります。

その場合、次のものが必要です。

[program:apnsd]
command=/home/dotcloud/current/printenv.py
environment= PYTHONPATH="/home/dotcloud/current/apnsd/"

( のスペース= PYTHONPATHは必須ではありません。ファイルを少し読みやすくするためPYTHONPATHです。ただし、 の値を囲む引用符は必須です!)

この問題について言及するために dotCloud のドキュメントを更新します。

于 2012-05-18T16:31:16.043 に答える