Je cours Supervisord sur mon serveur Ubuntu 14.04 et tout fonctionne bien. Je déploisie à l'aide d'une poussée git et lors du déploiement, j'ai également besoin de redémarrer mon serveur d'applications ( gundicorn ) que je peux supposer à l'aide de supervisorctl
.
oNU mon supervisord.conf
, Gunicorn est défini comme suit:
[program:gunicorn]
command=/home/imb/imb/venv/bin/gunicorn --worker-class eventlet -b 127.0.0.1:5000 -w 1 app:app
directory=/home/imb/imb
autostart=true
autorestart=true
stdout_logfile=/tmp/gunicorn.log
redirect_stderr=true
stopsignal=QUIT
et j'ai activé supervisorctl
comme ceci:
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
J'ai commencé superviseur en utilisant
Sudo supervisord -c /home/imb/imb/supervisord.conf
Autant que je sache, je devrais maintenant être capable de redémarrer Gunicorn en utilisant la commande supervisorctl restart gunicorn
, mais quand je fais que je reçois
$ supervisorctl restart gunicorn
unix:///var/run/supervisor.sock no such file
J'ai vérifié et le fichier /var/run/supervisor.sock
En effet n'existe pas, même si je suis sûr que le superviseur est en fait courant:
$ ps -A | grep supervisor
27211 ? 00:00:00 supervisord
Est-ce que quelqu'un sait pourquoi le /var/run/supervisor.sock
Le fichier n'est pas créé, même si le superviseur fonctionne clairement? Tous les conseils sont les bienvenus!
D'accord, après avoir joué autour d'autres, j'ai trouvé ce que j'ai mal fait.
Etepte les lignes pour supervisorctl
ci-dessous, indiquez uniquement supervisorctl
où il peut trouver le fichier de socket.
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
En outre, dans le fichier, deux autres lignes définissent l'endroit où le fichier est en fait créé:
[unix_http_server]
file=/tmp/supervisor.sock
Comme vous pouvez le constater, cela a créé le fichier de socket dans /tmp/
_ _ supervisorctl
essayé de le lire de /var/run/
. J'ai changé la dernière ligne en file=/var/run/supervisor.sock
Et maintenant ça marche sacrément.
J'espère que cette réponse pourrait aider quelqu'un d'autre à faire face au même problème.
De plus, vous pouvez consulter le lien fourni par @mariusmatutiae dans les commentaires: https://stackoverflow.com/questions/10716159/NGINX-AND-Supervisvis-setup-in-ubunt
Pour les utilisateurs qui ont la même entrée pour les deux
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock
Et
[unix_http_server]
file=/tmp/supervisor.sock
suivez ci-dessous les étapes pour résoudre le problème -
J'espère que cela vous aidera!
Après trop de luttes avec cette question, tout le monde me disait à juste enable
ou restart
qui ne fonctionnait pas. J'ai finalement découvert la solution pour moi:
/etc/supervisor/supervisor.conf
.conf
Fichier ici: /etc/supervisor/conf.d/project.conf
En quelque sorte supervisorctl
travaillait bien mais la chose étrange est que cela fait service supervisor restart
pause tout et vous obtenez l'erreur d'op.
La solution est alors à:
project.conf
à project.conf.tmp
service supervisor restart
(après quoi supervisorctl
fonctionne à nouveau)project.conf
supervisorctl reread
, supervisorctl update
, supervisorctl restart all
vi /opt/conf/supervisord.conf
[supervisord]
nodaemon=true
[unix_http_server]
file=/var/run/supervisor.sock
; rpc interface for supervisorctl
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
[program:program1]
diriger
/usr/bin/supervisord -c /opt/conf/supervisord.conf
gérer super fiachctl
/usr/bin/supervisorctl -c /opt/conf/supervisord.conf