dotcloud supervisord.conf文件环境规范

时间:2012-05-18 13:30:48

标签: dotcloud

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变量!

1 个答案:

答案 0 :(得分:3)

主管有一个错误;

。必须引用一些变量(如包含/的变量)。

在这种情况下,您需要:

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

= PYTHONPATH中的空格不是强制性的,只是为了使文件更具可读性;但是,PYTHONPATH值附近的引号是必需的!)

我将更新dotCloud的文档以提及此问题。