web-dev-qa-db-fra.com

Unix: ///var/run/supervisor.sock.sock pas de tel fichier

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!

10
kramer65

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

6
kramer65

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 -

  1. Supprimer le fichier .sock de/TMP
  2. Exécutez la commande 'Supervisord'. Cela recréera le fichier de chaussettes.
  3. Exécutez "super fichesctl -i" pour vérifier l'état des services.

J'espère que cela vous aidera!

5
monothorn

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:

  • Tout d'abord reconnaître que vous avez le fichier principal de superviseur.conf ici: /etc/supervisor/supervisor.conf
  • Si vous êtes dans mon cas, vous avez également un projet spécifique .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 à:

  1. Renommer project.conf à project.conf.tmp
  2. Puis service supervisor restart (après quoi supervisorctl fonctionne à nouveau)
  3. Vous renommez votre fichier Conf au projet sur project.conf
  4. supervisorctl reread, supervisorctl update, supervisorctl restart all
3
lapin

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
0
Tinkal Gogoi