Umgebungsvariable vor der Ausführung laden

8

Ich plane, einige Anwendungseinstellungen in Umgebungsvariablen zu speichern, z. B. MYSQL_URL = mysql: // ... Ich verwende supervisord, um den Anwendungsprozess zu verwalten. Wie lade ich Umgebungsvariablen, bevor der Subprozess gestartet wird? Besonders wenn diese Einstellungen geändert werden, hoffe ich, dass ein Neustart des Subprozesses die neuen Einstellungen lädt.

Ich frage mich auch, wo diese Umgebungsvariablen gespeichert werden sollen. Eine Datei, die ich "$ (cat filename)" exportieren kann? Oder ein paar bessere Möglichkeiten. Ich bin gespannt, wie Heroku seine Umgebungsvariablen verwaltet.

    
Ji ZHANG 05.08.2012, 09:44
quelle

2 Antworten

19

Sie können pro-Prozess-Umgebungsvariablen in der supervisord-Konfiguration im Abschnitt [ program:x ] setzen, diese werden beim Start an den Prozess übergeben:

%Vor%

Beachten Sie, dass Sie zwischen jeder Variablen ein Komma verwenden müssen. Ich habe auch im obigen Beispiel Zeilenumbrüche verwendet, die optional sind. Wenn Sie Leerzeichen in Ihren Umgebungswerten haben, müssen Sie den Wert in Anführungszeichen setzen.

Sie können auch Umgebungsvariablen für alle Prozesse im Abschnitt [supervisord] festlegen, indem Sie dasselbe Format verwenden.

Zu guter Letzt werden alle Umgebungsvariablen, die beim Start von Supervisord gesetzt werden, auch an die von supervisord verwalteten Prozesse weitergegeben. Weitere Informationen finden Sie im Dokumentationsabschnitt zu Umgebungsvariablen .

Beachten Sie, dass Sie, wenn Sie Umgebungsvariablen ändern, die in der Konfigurationsdatei konfiguriert sind, dem Supervisord signalisieren müssen, die Konfiguration neu zu laden und die Subprozesse neu zu starten, damit sie diese Änderungen übernehmen können:

%Vor%

Wenn Sie jedoch Umgebungsvariablen außerhalb von Supervisord ändern, müssen Sie den Supervisord alle zusammen herunterfahren, um diese auszuwählen:

%Vor%     
Martijn Pieters 05.08.2012, 10:02
quelle
0

Laut den Dokumenten enthält " supervisord.conf enthält einen Abschnitt namens [supervisord in welchen globalen Einstellungen" wie environmont Variablen können gesetzt werden. (Suchen Sie auf der verknüpften Seite nach dem Wort "Umgebung").

Umgebungsvariablen können auch pro Programm festgelegt werden .

    
unutbu 05.08.2012 09:54
quelle