Ich kann anscheinend nicht herausfinden, wie ich in einer Supervisord-Programmkonfiguration an den Standardpfad anhänge.
Ich kann den Pfad zurücksetzen:
environment=PATH="/home/site/environments/master/bin"
Aber wenn ich versuche:
environment=PATH="/home/site/environments/master/bin:$PATH"
Ich sehe, dass der Vorgesetzte nicht bewertet $PATH
.
Google war aus irgendeinem Grund keine große Hilfe, ich kann nicht glauben, dass ich der erste bin, der das braucht.
Supervisord muss dafür Unterstützung haben, weißt du, was es ist?
supervisord
Prody
quelle
quelle
supervisord
Führen Sie keine Shell aus, um Variablen in der Konfigurationsdatei vorzuverarbeiten. Sie können also keine Shell-Ausdrücke zum Erweitern von Variablen verwenden. Obwohl es einen Patch gibt, der das erlaubt%($PATH)
und der bereits 2011 in Mailinglisten diskutiert wurde, ist AFAIK immer noch nicht im Hauptquellbaum enthalten. Um dieses Problem zu umgehen, können Sie ein Skript erstellen, mit dem die Umgebung eingerichtet und ein in Argumenten angegebenes Kommando ausgeführt wird. Dann führen Sie einfach das Skript aus demsupervisord
wiecommand /usr/local/bin/setup_env_master.sh program_name arguments
exec server --args
. Sie sehen es ausnahmslos in Upstart-Jobs.Antworten:
Diese Funktion wurde kürzlich zu Supervisor hinzugefügt
environment = PATH = "/ home / site / surroundings / master / bin:% (ENV_PATH) s"
https://github.com/Supervisor/supervisor/blob/master/supervisor/skel/sample.conf#L8
Siehe auch /programming/12900402/supervisor-and-environment-variables
quelle
Ich habe die Dokumentation durchgesehen und bin mit Dmitry einverstanden.
Die aktuelle Antwort lautet: Supervisor führt dieses Verzeichnis nicht aus, aber das Erstellen eines Wrapper-Skripts hilft.
quelle