Supervisor funktioniert nicht mit Gunicorn + Kolben
Ich versuche zu laufen Gunicorn vom Supervisor in einer Ubuntu-12.04-system. Gunicorn läuft ein Kolben app (einfache REST-web-service getestet mit Kolben embedded server). Ich habe installiert Gunicorn von clonning GIT repo, versuchen zu vermeiden, "apt-get install", weil es läuft Gunicorn server, wenn installiert es. Ich will es nicht ausführen, es wird von Vorgesetzten nur.
Also nach dem installieren, wenn ich versuchen:
cd /usr/local/bin
gunicorn my_app:app -c /path/to/gu_config_file
Gunicorn funktioniert. Dann töte ich es. Hinweis: config-Datei ohne Erweiterung, da mit '.py' extension funktioniert bei mir nicht.
Also ich Bearbeiten Supervisor config-Datei wie:
[program:gunicorn]
command=/usr/local/bin/gunicorn my_app:app -c /path/to/.gu_setup
directory=/usr/local/bin/
autostart=true
autorestart=true
redirect_stderr=True
- Und update-änderungen im Betreuer:
supervisorctl reread
# gunicorn: changed
supervisorctl update
# gunicorn: stopped
# gunicorn: updated process group
Erkennt änderungen in der Datei und arbeitet für Gunicorn-Programm. Ok, dann habe ich aber versuchen, es zu starten:
supervisorctl start gunicorn
Immer eine lästige:
gunicorn: ERROR (abnormal termination)
Überprüfung Vorgesetzten melden:
2013-03-08 13:07:22,378 INFO spawned: 'gunicorn' with pid 3355
2013-03-08 13:07:22,916 INFO exited: gunicorn (exit status 3; not expected)
2013-03-08 13:07:23,918 INFO spawned: 'gunicorn' with pid 3361
2013-03-08 13:07:24,492 INFO exited: gunicorn (exit status 3; not expected)
2013-03-08 13:07:26,496 INFO spawned: 'gunicorn' with pid 3367
2013-03-08 13:07:27,078 INFO exited: gunicorn (exit status 3; not expected)
2013-03-08 13:07:30,085 INFO spawned: 'gunicorn' with pid 3373
2013-03-08 13:07:30,628 INFO exited: gunicorn (exit status 3; not expected)
2013-03-08 13:07:31,630 INFO gave up: gunicorn entered FATAL state, too many start retries too quickly
Ich weiß nicht, was jetzt tun... Können Sie mir helfen?
Thx a lot!
EDIT: sorry, ich vergaß zu sagen, ich habe exportiert PYTHONPATH-variable:
export PYTHONPATH=/usr/local/bin:/usr/local/lib/project
'my_app" ist in /usr/local/bin. Der lib-Pfad ist erforderlich für die anderen Module.
Ich bearbeitet, aber auch Supervisor-config-Datei, um anzuzeigen, Umwelt-Variablen, wie:
environment=PYTHONPATH=/usr/local/bin:/usr/local/lib/project/
Aber hat nicht funktioniert.
EDIT 2: @robertklep schlage vor, in seinem Kommentar, das ist die log Ausgabe:
Traceback (most recent call last):
File "/tmp/gunicorn/gunicorn/arbiter.py", line 485, in spawn_worker
worker.init_process()
File "/tmp/gunicorn/gunicorn/workers/base.py", line 100, in init_process
self.wsgi = self.app.wsgi()
File "/tmp/gunicorn/gunicorn/app/base.py", line 103, in wsgi
self.callable = self.load()
File "/tmp/gunicorn/gunicorn/app/wsgiapp.py", line 25, in load
return util.import_app(self.app_uri)
File "/tmp/gunicorn/gunicorn/util.py", line 369, in import_app
__import__(module)
File "/usr/local/bin/my_app.py", line 4, in <module>
import const
ImportError: No module named const
2013-03-08 13:29:35 [3670] [INFO] Worker exiting (pid: 3670)
2013-03-08 13:29:36 [3665] [INFO] Shutting down: Master
2013-03-08 13:29:36 [3665] [INFO] Reason: Worker failed to boot.
'const' Modul liegt in /usr/local/lib/Projekt...
InformationsquelleAutor Alberto Megía | 2013-03-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nicht sehen Sie die Einstellung der Umgebung, in der Sie Ihren Vorgesetzten config-Datei:
Wenn das nicht funktioniert, versuchen Sie, beginnend gunicorn im debug-Modus:
Oder pass den Pfad direkt zu gunicorn:
EDIT: gunicorn ist
--pythonpath
defekt ist, können Sie nur ein Verzeichnis:So sage mir, es kann nicht finden, 'const' - Modul, aber es ist in /usr/local/lib/Projekt, Hinzugefügt, um die Umwelt in den Supervisor-config-Datei...
Siehe mein edit über übergeben den Pfad direkt zu gunicorn.
Ich bin nur zu bemerken, dass gunicorn ist
--pythonpath
könnte tatsächlich gebrochen sein. Versuchen Sie, nur--pythonpath /usr/local/lib/project
.Einstellung
--pythonpath /path/to/project
mein problem gelöst. Danke!InformationsquelleAutor robertklep
Es ist nicht notwendig, pass --pythonpath. Wenn Sie die Arbeit virtuanenv Sie stellen hinzufügen, wo ist gunicorn. Beispiel:
Und das Verzeichnis ist als Kolben-code, Beispiel:
Erinnern, Benutzer ist root!
InformationsquelleAutor user2389644