supervisor-Programm:x-Befehl Erweiterung der Umgebungsvariablen $(ENV_VAR)s?
Ich würde gerne die Konfiguration (in diesem Fall, site-name), in supervisor
Umwelt-Variablen, für die Erweiterung im Programm:x-Befehl Argumente. Wird diese unterstützt? Die Dokumentation, die Formulierung würde scheinen, zu zeigen, ja.
Die folgende syntax ist nicht für mich arbeiten, auf supervisor-3.0 (Auszug aus der config-Datei):
[supervisord]
environment = SITE="mysite"
[program:service_name]
command=/path/to/myprog/myservice /data/myprog/%(ENV_SITE)s/%(ENV_SITE)s.db %(program_name)s_%(process_num)03d
process_name=%(program_name)s_%(process_num)03d
numprocs=5
numprocs_start=1
Wirft die folgende Fehlermeldung:
sudo supervisord -c supervisord.conf
Error: Format string
'/path/to/myprog/myservice /data/myprog/%(ENV_SITE)s/%(ENV_SITE)s.db %(program_name)s_%(process_num)03d'
for 'command' contains names which cannot be expanded
Lesen Sie in der Dokumentation, die ich erwartet habe Umgebungsvariablen zur Verfügung stehen
Erweiterung im Programm:x-Befehl als %(ENV_VAR)s:
http://supervisord.org/configuration.html#program-x-section-values
Befehl:
"String-Ausdrücke werden ausgewertet, gegen die ein dictionary mit den keys
group_name, host_node_name, process_num, Programmname, hier (das Verzeichnis der
der supervisord config-Datei) und alle supervisord die Umgebungsvariablen
vorangestellt ENV_."
Eingeführt: 3.0
Verwandte:
Gibt es offenen pull requests auf die expansion in zusätzliche Abschnitt Werte:
https://github.com/Supervisor/supervisor/issues?labels=expansions&page=1&state=open
Suche von goole (oder SO) gibt keine Beispiele von versuchen, verwenden Sie %(ENV_VAR)s
expansion in der command-section-Wert:
https://www.google.com/search?q=supervisord+Umwelt+Erweiterung+in+Kommando
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich Stimme Vorgesetzten nicht klar ( zu mich mindestens ).
Ich gefunden habe, ist die einfachste Lösung zum ausführen von /bin/bash -c.
In deinem Fall wäre es:
Was denkst du?
Ich gefunden habe hier inspiration: http://blog.trifork.com/2014/03/11/using-supervisor-with-docker-to-manage-processes-supporting-image-inheritance/
Du machst es richtig; jedoch in der ENV definiert in Ihrem supervisord Abschnitt nicht zur Verfügung gestellt, um die Prozesse, die aus welchem Grund auch immer während der Konfiguration laden. Wenn Sie beginnen, supervisord wie diese:
Es ordnungsgemäß ausgeführt wird, und erweitern Sie die variable. Ich weiß nicht, warum supervisord hat Probleme hinzufügen, um die Umgebung und Ihre Bereitstellung für die Teilprozesse' config expansion. Ich denke, dass die Umgebungsvariable zur Verfügung innerhalb des teilprozesses, jedoch nicht, wenn expandiert Variablen in der Teilprozess config Erklärung.