Wie kann ich den PFAD für supervisord so findet er die ausführbaren Dateien
Ich versuche zu setup supervisor.conf
. Einer meiner apps benötigt node.js aber Knoten ist nicht installiert, system wise. Auch, weil es braucht, um eine Bindung an port 80 es muss als root ausgeführt werden. Wie kann ich ändern, das PATH
Variablen, so dass supervisord finden die node
ausführbare Datei (die liegt in einem Verzeichnis), und führen Sie die node.js app.
Ich versuche, es zu tun wie dieser
[supervisord]
environment=PATH=/path/to/where/node/executable/is
[program:web]
command=node web.js -c config.json
Dieser schlägt mit
2011-08-25 16:49:29,494 INFO spawnerr: can't find command 'node'
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie können nur den absoluten Pfad zu dem Befehl:
Können Sie fügen Sie in den Befehl, indem Sie env:
Scheint es-Umgebung funktioniert nicht auf einige Fälle.
$PATH
. In meinem Fall habe ich gebraucht, um sentry in einem virtualenv-Verzeichnis und es hat nicht funktioniert, aber nach der Einstellungcommand=env PATH="/path/to/virtualenv/bin:%(ENV_PATH)s" sentry start
es funktionierte perfekt, und die Umgebungsvariable PATH wird beibehalten.Muster habe ich angefangen mit mit Betreuer (das ist ähnlich wie zenbeni s) ist, verwenden Sie ein shell-Skript zu starten, welches Programm ich laufen lasse, die eine Konfiguration von Umgebungsvariablen, etc.
z.B.
Den Einsatz von 'exec' ist wichtig. Es ersetzt /bin/sh, die mit dem Programm ausgeführt wird, anstatt laichen Sie wie ein Kind. Dies bedeutet, dass es keine zusätzlichen Prozesse rund um, und auch die Signale wie erwartet funktionieren.
Den (kleinen) Vorteil dieser über zenbeni Methode ist, dass beim aktualisieren der Umgebungsvariablen, etc, es dauert nur ein supervisor neu gestartet, d.h. kein Lesen/aktualisieren usw. erforderlich. Dieser Vorteil wird größer, wenn mit einem Ereignis-listener, wenn Sie auf den gleichen Fehler ich habe (kompletten Neustart des Vorgesetzten update-Ereignis-listener-Umgebungsvariablen).