Problème de port du serveur HTTP du superviseur

65

J'ai configuré le superviseur pour gérer quelques processus. Cela fonctionne parfaitement bien lorsque je démarre mon serveur, cependant lorsque je l’arrête et que je tente de le redémarrer, il échoue et me donne cette erreur msg:

 * Démarrer le gestionnaire de démon Superviseur ...
Erreur: un autre programme écoute déjà sur un port que l'un de nos serveurs HTTP est configuré pour utiliser. Fermez ce programme avant de commencer supervisord.
Pour obtenir de l'aide, utilisez / usr / bin / supervisord -h
   ...échouer!

J'exécute nginx sur les ports 80 et 4 du Web, sur les ports 8000, 8001, 8002, 8003

Est-ce que quelqu'un a une idée de ce qui se passe?

Quand je redémarre tout fonctionne bien.


la source

Réponses:

91

Juste couru dans cela aussi. Je l'ai corrigé en faisant l'une ou l'autre de ces choses:

sudo unlink /tmp/supervisor.sock

sudo unlink /var/run/supervisor.sock

Ce fichier .sock est défini dans la valeur de configuration du fichier [unix_http_server] du fichier /etc/supervisord.conf (par défaut, /tmp/supervisor.sock ou /var/run/supervisor.sock).

J'espère que cela aidera quelqu'un dans le futur.

ramayac
la source
12
@sdolan Wow, ça m'a aidé! J'ai enlevé /var/run/supervisor.sock et éliminé l'erreur sur l'écurie Debian
Abhishek A
2
lancez find / -name supervisor.sock avant de lancer unlink - sur les systèmes Debian, il se trouve dans / var / run /, mais votre solution de
dissociation a
2
Pourquoi superviseur ne termine-t-il pas par un code d'erreur pour permettre aux scripts de se dissocier automatiquement et de réessayer?
Tal Weiss
Soyez prudent ici. Après avoir dissocié le lien, lancez "ps -ef | grep supervisord" et vous verrez que l'ancien processus est toujours en cours d'exécution. Vous voudrez peut-être "tuer <id_processus>" également. EDIT: Ce fut mon cas en utilisant Ubuntu 14.04.
jball037
1
Après la commande de dissociation, j'essaie de redémarrer le superviseur, mais maintenant, il manque le. unix:///tmp/supervisor.sock no such file. Alors, que dois-je faire d'autre.
Robert
7

J'utiliserais lsof pour savoir quel processus écoute sur ces ports.

lsof -i tcp | grep LISTEN

Une fois que vous avez défini le processus, c’est la moitié de la bataille.

gorille
la source