Je souhaite déployer un serveur de développement, mais le démarrage du céleri et du gunicorn pose un problème. J'utilise des scripts pour mes besoins
céleri.sh
#!/bin/bash
cd /home/dev/app
pipenv run celery -A config worker -B -l info
et start.sh pour 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
Aussi voici ma config pour superviseur
[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
Lorsque j'exécute Sudo supervisorctl start celery
, le message d'erreur suivant s'affiche: /home/dev/bin/celery: line 3: pipenv: command not found
J'ai aussi ajouté les lignes suivantes, comme le dit la documentation pipenv ( https://pipenv.readthedocs.io/en/latest/diagnose/ )
[supervisord]
environment=LC_ALL='en_US.UTF-8',LANG='en_US.UTF-8'
Changé ma configuration de superviseur:
[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
Et maintenant je reçois une erreur:
back: ERROR (no such file)
Vous devez donner le chemin explicite de gunicorn. Bien que je ne sois pas sûr de pipenv, mais l'erreur que vous obtenez est due au fait que le superviseur essaie de trouver gunicorn dans le répertoire. Vous devriez changer votre fichier de configuration en quelque chose comme ceci:
[program:back]
directory=/home/dev/app/
command=/path/to/pipenv run /path/to/gunicorn config.wsgi:application --bind 127.0.0.1:8005
Ensuite, vous devez redémarrer votre supervisord afin de charger les paramètres.
Sudo service supervisord reload
dans votre fichier de configuration. remplacez
command=
parbash -c
suivi du chemin complet et du fichier à exécuter Cela devrait faire l'affaire