environment-variables - variable - supervisor environment
Supervisor y variables de entorno (4)
En su archivo .conf bajo el bloque de supervisión, puede agregar todos los pares clave = valor de entorno como tales
[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
Si no desea codificar las variables pero desea extraerlas del entorno del sistema operativo, paso 1 en su cuenta de bash
Exportación env var
>> sudo export CELERY_BROKER_URL="amqp://guest:[email protected]:5672//"
Recargar Bash
>> . ~/.bashrc
Compruebe si env vars están configurados correctamente
>> env
Ahora modifique el archivo conf para leer - Note : anteponga sus variables env con 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
Realmente no sé cómo hacer que el supervisor trabaje con variables de entorno.
A continuación se muestra un fragmento de configuración.
[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
He probado lo siguiente:
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
Cuando empiezo supervisor me pongo
htNotificationService: ERROR (abnormal termination)
Puedo comenzar desde el shell configurando la ruta de acceso de python, pero no desde supervisor. En los registros obtengo un error que dice que no se puede encontrar una importación. Bueno, eso se resolvería si el supervisor trabajara. ¿Incluso tengo el camino en / etc / ambientes?
¿Por qué el supervisor no funciona?
La referenciación de env vars existentes se realiza con% (ENV_VARNAME) s
(consulte https://github.com/Supervisor/supervisor/blob/master/supervisor/skel/sample.conf )
La configuración de múltiples variables de entorno se realiza separándolas con comas
(consulte http://supervisord.org/subprocess.html#subprocess-environment )
Tratar:
environment=PYTHONPATH=/opt/mypypath:%(ENV_PYTHONPATH)s,PATH=/opt/mypath:%(ENV_PATH)s
Si instala supervisor desde un instalador de paquetes, verifique qué versión de Supervisor está utilizando. A partir de agosto de 2016 obtendrá 3.0b2 . Si este es el caso, necesitará una versión más reciente de supervisor. Puede obtenerlo instalando el supervisor manualmente o usando el pip de Python. Asegúrese de que se cumplan todas las dependencias, junto con la configuración inicial para que Supervord funcione como un servicio y se inicie en el inicio del sistema.
esto funciona para mi note las pestañas antes de cada línea:
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