Supervisor and Environment Variables

Referencing existing env vars is done with %(ENV_VARNAME)s

See: https://github.com/Supervisor/supervisor/blob/master/supervisor/skel/sample.conf

Setting multiple environment variables is done by separating them with commas

See: http://supervisord.org/subprocess.html#subprocess-environment

Try:

environment=PYTHONPATH=/opt/mypypath:%(ENV_PYTHONPATH)s,PATH=/opt/mypath:%(ENV_PATH)s

In your .conf file under the supervisord block, you can add all the environment key=value pairs as such

[supervisord]
environment=CELERY_BROKER_URL="amqp://guest:[email protected]:5672//",FLASK_CONFIG="TESTING"

[program:celeryd]
command=celery worker -A celery --loglevel=info -P gevent -c 1000

If you dont want to hardcode the variables but want to pull it in from the os environment, step 1 on your bash

Export env var

>> sudo export CELERY_BROKER_URL="amqp://guest:[email protected]:5672//"

Reload Bash

>> . ~/.bashrc

Check if env vars are set properly

>> env

Now modify the conf file to read - Note: prepend your env variables with 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