Supervisor: cómo agregar a $ PATH

23

Parece que no puedo entender cómo agregar a la ruta predeterminada en una configuración de programa de supervisión.

Puedo restablecer el camino:

environment=PATH="/home/site/environments/master/bin"

Pero cuando lo intento:

environment=PATH="/home/site/environments/master/bin:$PATH"

Veo que el supervisor no evalúa $PATH.

Google no fue de gran ayuda en esto por alguna razón, no puedo creer que sea la primera persona en necesitarlo.

El supervisor debe tener apoyo para esto, ¿alguna idea de qué es?

Prody
fuente
1
@ascobol no, he codificado el camino que necesito, por ahora
Prody
2
supervisordno ejecute shell para preprocesar variables en el archivo de configuración, por lo que no puede usar expresiones de shell para expandir variables. Aunque hay un parche que permite hacerlo %($PATH), se discutió en las listas de correo en 2011, pero AFAIK todavía no está incluido en el árbol de origen de la línea principal. Como solución alternativa, puede crear un script que configurará el entorno y ejecutará un comando proporcionado en los argumentos. Luego, simplemente ejecuta el script de la supervisordmisma maneracommand /usr/local/bin/setup_env_master.sh program_name arguments
Dmitry Vasilyanov
1
Hay una desventaja significativa en la solución de envoltura de shell: cuando el supervisor intentará detener el proceso usando INT o KILL, la señal será recibida por el script bash y no por el programa envuelto real. Esto puede conducir (y conduce en mi caso) a procesos colgantes.
stoiczek
@stoiczek problema fácil de resolver. Use exec al final del script bash, no solo ejecute el comando regularmente. Por lo tanto exec server --args. Lo ves invariablemente en trabajos nuevos.
CameronNemo

Respuestas:

1

Revisé la documentación y estoy de acuerdo con Dmitry.

La respuesta actual es: el supervisor no hace este directorio, pero la creación de un script de envoltura ayudará.

La UNI
fuente