我真的不知道如何让supervisor使用环境变量。
下面是一个配置代码片段。
[program:htNotificationService]
priority=2
#autostart=true
#autorestart=true
directory=/home/ubuntu/workspace/htFrontEnd/heythat/htsite
command = /usr/bin/python htNotificationService.py -service
stdout_logfile=/var/log/heythat/htNotificationService.log
redirect_stderr=true
environment=PATH=/home/ubuntu/workspace/htFrontEnd/heythat
stopsignal=QUIT我尝试过以下几种方法:
environment=PATH=/home/ubuntu/workspace/htFrontEnd/heythat
environment=PYTHONPATH=$PYTHONPATH:/home/ubuntu/workspace/htFrontEnd/heythat
environment=PATH=/home/ubuntu/workspace/htFrontEnd/heythat,PYTHONPATH=$PYTHONPATH:/home/ubuntu/workspace/htFrontEnd/heythat当我开始做主管时,我会得到
htNotificationService: ERROR (abnormal termination)我可以通过设置python路径从shell开始,但不能从supervisor开始。在日志中,我得到一个错误,说找不到导入。好吧,如果主管愿意的话这个问题就解决了。我甚至在/etc/environment中有路径?
为什么主管不会工作?
发布于 2013-10-27 05:08:40
引用现有环境变量是使用%(ENV_VARNAME)s完成的
(参见https://github.com/Supervisor/supervisor/blob/master/supervisor/skel/sample.conf )
设置多个环境变量的方法是用逗号分隔它们
(参见http://supervisord.org/subprocess.html#subprocess-environment )
尝试:
environment=PYTHONPATH=/opt/mypypath:%(ENV_PYTHONPATH)s,PATH=/opt/mypath:%(ENV_PATH)s发布于 2016-03-24 19:40:48
在supervisord块下的.conf文件中,您可以这样添加所有环境key=value对
[supervisord]
environment=CELERY_BROKER_URL="amqp://guest:guest@127.0.0.1:5672//",FLASK_CONFIG="TESTING"
[program:celeryd]
command=celery worker -A celery --loglevel=info -P gevent -c 1000如果您不想对变量进行硬编码,但又想将其从os环境中提取出来,那么在bash上执行步骤1。
导出环境变量
>> sudo export CELERY_BROKER_URL="amqp://guest:guest@127.0.0.1:5672//"重新加载Bash
>> . ~/.bashrc检查环境变量是否设置正确
>> env现在修改conf文件以读取- Note:在您的环境变量前面加上ENV_
[supervisord]
environment=CELERY_BROKER_URL="%(ENV_CELERY_BROKER_URL)s",FLASK_CONFIG="%(ENV_FLASK_CONFIG)s"
[program:celeryd]
command=celery worker -A celery --loglevel=info -P gevent -c 1000发布于 2016-12-25 21:04:19
这对我很有效。请注意每行之前的选项卡:
environment=
CLOUD_INSTANCE_NAME=media-server-xx-xx-xx-xx,
CLOUD_APPLICATION=media-server,
CLOUD_APP_COMPONENT=none,
CLOUD_ZONE=a,
CLOUD_REGION=b,
CLOUD_PRIVATE_IP=none,
CLOUD_PUBLIC_IP=xx.xx.xx.xx,
CLOUD_PUBLIC_IPV6=xx.xx.xx.xx.xx.xx,
CLOUD_PROVIDER=chttps://stackoverflow.com/questions/12900402
复制相似问题