106 votes

Le superviseur ne charge pas les nouveaux fichiers de configuration

J'ai un problème pour déployer une application Django en utilisant Gunicorn et Supervisor. Alors que je peux faire en sorte que Gunicorn serve mon application (en définissant le PYTHONPATH approprié et en exécutant la commande adéquate, celle de la configuration de Supervisord), je ne peux pas faire en sorte que Supervisor l'exécute. Il ne voit tout simplement pas mon application. Je ne sais pas comment m'assurer que le fichier de configuration est correct.

Voici ce que dit supervisorctl :

# supervisorctl start myapp_live
myapp_live: ERROR (no such process)

Je l'utilise sur Ubuntu 10.04 avec la configuration suivante :

Fichier /home/myapp/live/deploy/supervisord_live.ini :

[program:myapp_live]
command=/usr/local/bin/gunicorn_django --log-file /home/myapp/logs/gunicorn_live.log --log-level info --workers 2 -t 120 -b 127.0.0.1:10000 -p deploy/gunicorn_live.pid webapp/settings_live.py
directory=/home/myapp/live
environment=PYTHONPATH='/home/myapp/live/eco/lib'
user=myapp
autostart=true
autorestart=true

Dans /etc/supervisor/supervisord.conf, à la fin du fichier, il y a :

[include]
files = /etc/supervisor/conf.d/*.conf

et voici un lien symbolique vers mon fichier de configuration :

# ls -la /etc/supervisor/conf.d
lrwxrwxrwx 1 root root   48 Dec  4 18:02 myapp-live.conf -> /home/myapp/live/deploy/supervisord_live.ini

tout semble correct pour moi mais le supervisorctl continue de dire myapp_live: ERROR (no such process) . Une solution à ce problème ?

288voto

Mark Theunissen Points 2918

La bonne réponse est que le superviseur vous demande de relire y mise à jour lorsque vous placez un nouveau fichier de configuration. Le redémarrage n'est pas la solution, car cela affecterait d'autres services. Essayez :

supervisorctl reread
supervisorctl update

52voto

Rubellite Fae Points 101

J'ai eu le même problème, un

sudo service supervisord reload

a fait l'affaire, mais je ne sais pas si c'est la réponse à votre question.

27voto

nym Points 321

Assurez-vous que vos fichiers conf de superviseur se terminent par .conf

Ça m'a pris du temps pour comprendre ça. J'espère que ça aidera la prochaine personne.

15voto

Burhan Khalid Points 415

Recharger le processus superviseur maître peut fonctionner, mais cela aura des effets secondaires inattendus si vous avez plus d'un processus surveillé par le superviseur.

La manière correcte de le faire est d'émettre supervisorctl reread ce qui lui permet d'analyser les fichiers de configuration à la recherche d'éventuelles modifications :

root@debian:~# supervisorctl reread
gunicorn: changed

Ensuite, il suffit de recharger cette application :

root@debian:~# supervisorctl restart gunicorn
gunicorn: stopped
gunicorn: started

8voto

Mina_Rotter Points 1

J'ai eu un problème similaire ( myapp_live: ERROR (no such process) ) et c'est parce que la définition de mon processus était

[program: myapp_live]

alors qu'il aurait dû être

[program:myapp_live]

Bien que cela ne réponde pas à la question posée, j'ai été conduit ici par le site Search that Be à la recherche d'une solution à mon problème, alors j'espère que d'autres personnes la trouveront ici aussi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X