web-dev-qa-db-de.com

pipenv mit Supervisor einrichten

Ich möchte Dev-Server bereitstellen, aber ich habe ein Problem mit dem Starten von Sellerie und Gunicorn. Ich verwende Skripte für meine Zwecke

sellerie.sh

#!/bin/bash 
cd /home/dev/app
pipenv run celery -A config worker -B -l info

und start.sh für gunicorn

#!/bin/bash
cd /home/dev/app
pipenv run gunicorn config.wsgi:application -b 127.0.0.1:8005 -w 2 -t 60 \

    --env Django_SETTINGS_MODULE=$Django_SETTINGS_MODULE \

    --env DSN=$SENTRY_DSN \

    --env DATABASE_URL=$DATABASE_URL \

    --log-file - \

    --error-logfile /home/dev/app/errors.log 

Auch hier ist meine Config für Supervisor

[program:back]
directory=/home/dev/app/
command=/home/dev/bin/start
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true


[program:celery]
directory=/home/dev/app/
command=/home/dev/bin/celery
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true

Beim Ausführen von Sudo supervisorctl start celery erhalte ich die folgende Fehlermeldung: /home/dev/bin/celery: line 3: pipenv: command not found

Außerdem fügte ich die folgenden Zeilen hinzu, wie in der pipenv-Dokumentation ( https://pipenv.readthedocs.io/de/latest/diagnose/ )

[supervisord]
environment=LC_ALL='en_US.UTF-8',LANG='en_US.UTF-8'

AKTUALISIEREN

Meine Supervisor-Konfiguration geändert:

[program:back]
directory=/home/dev/app/
command=pipenv run gunicorn config.wsgi:application --bind 127.0.0.1:8005
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true


[program:celery]
directory=/home/dev/app/
command=pipenv run celery -A config:celery_app worker -B -l info
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true

Und jetzt bekomme ich einen Fehler:

back: ERROR (no such file)
8
Ernst

Sie müssen einen expliziten Pfad von Gunicorn angeben. Ich bin mir zwar nicht sicher über pipenv, aber der Fehler, den Sie erhalten, ist, dass der Supervisor versucht, Gunicorn im Verzeichnis zu finden. Sie sollten Ihre Konfigurationsdatei folgendermaßen ändern:

[program:back]
directory=/home/dev/app/
command=/path/to/pipenv run /path/to/gunicorn config.wsgi:application --bind 127.0.0.1:8005

Dann müssen Sie Ihren Supervisord neu starten, um die Einstellungen zu laden.

Sudo Service Supervisord Nachladen

4
argo

in deiner Konfigurationsdatei. Ändern Sie command= in bash -c, gefolgt von dem vollständigen Pfad und der auszuführenden Datei das sollte den Trick tun 

0
Stanley