Supervisor and Environment Variables

前端 未结 5 1134
醉梦人生
醉梦人生 2020-11-28 04:13

I really don\'t know how to get supervisor to work with environment variables.

Below is a configuration snippet.

[program:htNotificationService]
prio         


        
相关标签:
5条回答
  • 2020-11-28 04:20

    I know this is old but I just struggled with this for hours and wanted to maybe help out the next guy.

    Don't forget to reload your config files after making updates

    supervisorctl reread
    supervisorctl update
    
    0 讨论(0)
  • 2020-11-28 04:26

    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
    
    0 讨论(0)
  • 2020-11-28 04:30

    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:guest@127.0.0.1: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:guest@127.0.0.1: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
    
    0 讨论(0)
  • 2020-11-28 04:34

    this works for me. note the tabs before each line:

    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=c
    
    0 讨论(0)
  • 2020-11-28 04:43

    If you install supervisor from a package installer, check which Supervisor version you are using. As of August 2016 you will get 3.0b2. If this is the case you will need a newer version of supervisor. You can get it by installing supervisor manually or by using Python's pip. Make sure all the dependencies are met, along with the upstart setup so that supervisord works as a service and starts on system boot.

    0 讨论(0)
提交回复
热议问题