web-dev-qa-db-fra.com

configuration de nginx et superviseur sous Ubuntu

J'utilise la configuration de Django-gunicorn-nginx en suivant ce tutoriel http://ijcdigital.com/blog/Django-gunicorn-and-nginx-setup/ Jusqu'à la configuration de nginx, cela fonctionne. Ensuite, j'ai installé le superviseur, je l'ai configuré, puis j'ai redémarré mon serveur et vérifié que 502 passerelles étaient défectueuses. J'utilise Ubuntu 12.04 LTS

/etc/supervisor/conf.d/qlimp.conf

[program: qlimp]
directory = /home/nirmal/project/qlimp/qlimp.sh
user = nirmal
command = /home/nirmal/project/qlimp/qlimp.sh
stdout_logfile = /path/to/supervisor/log/file/logfile.log
stderr_logfile = /path/to/supervisor/log/file/error-logfile.log

Puis j'ai redémarré superviseur et j'ai lancé cette commande $ supervisorctl start qlimp et j'obtiens cette erreur

unix:///var/run/supervisor.sock no such file

Y at-il un problème dans la configuration de mon superviseur?

Merci!

49
rnk

Le fait qu'il n'y ait pas de fichier de socket signifie probablement que le superviseur n'est pas en cours d'exécution. Une raison pour laquelle il ne fonctionne pas peut-être est que votre fichier qlimp.conf contient une sorte d'erreur. Si vous faites un 

Sudo service supervisor start

vous pouvez voir si c'est le cas ou non. Si le superviseur est déjà en cours, il dira. Et s’il détecte une erreur, il vous donnera généralement un message d’erreur plus utile que supervisorctl. 

65
kdazzle

J'ai rencontré le même problème que vous et après plusieurs fois, voici la solution:

  1. Commencez par supprimer la version d'apt-get supervisor:

      Sudo apt-get remove supervisor
    
  2. Tuez le processus du superviseur principal:

     Sudo ps -ef | grep supervisor
    
  3. Ensuite, récupérez la dernière version (apt-get version était 3.0a8):

    Sudo easy_install(pip install) supervisor==3.0b2 
    
  4. Écho du fichier de configuration (premission racine):

    echo_supervisord_conf > /etc/supervisord.conf
    

5. commencer supervisord:

   Sudo supervisord

6.Entrer supervisorctl:

   Sudo supervisorctl

Tout a été fait! S'amuser!

25
Scen

Essaye ça

cd /etc/supervisor
Sudo supervisord
Sudo supervisorctl restart all
17
Anil

Êtes-vous sûr que Supervisord est installé et fonctionne? Y at-il un fichier de socket présent à /var/run/supervisor.sock?

L'erreur indique que supervisorctl, la CLI du contrôle, ne peut pas atteindre le socket UNIX pour communiquer avec supervisord, le démon.

Vous pouvez également vérifier /etc/supervisor/supervisord.conf et voir si les valeurs des sections unix_http_server et supervisorctl correspondent.

Notez que ceci est un problème de niveau Ubuntu, pas un problème de Python, Django ou nginx et en tant que tel, cette question appartient probablement à ServerFault.

12
Martijn Pieters

Sur Ubuntu 16+, cela semble être dû au passage à systemd. Cette solution de contournement pourrait résoudre les nouveaux serveurs:

 # Make sure Supervisor comes up after a reboot.
 $ Sudo systemctl enable supervisor

 # Bring Supervisor up right now.
 $ Sudo systemctl start supervisor

puis vérifiez votre statut de iconic.conf [Mon exemple] de superviseur

$ Sudo supervisorctl status iconic

 enter image description here

PS: Assurez-vous que gunicorn ne devrait pas avoir de problème pendant la course.

9
Dinesh Sunny

L’erreur peut être due au fait que vous n’avez pas le privilège ..__ Peut-être pouvez-vous corriger l’erreur de cette manière, ouvrez votre terminal et entrez vim /etc/supervisord.conf pour éditer le fichier, recherchez les lignes 

[unix_http_server]
; fichier =/tmp/supervisor.sock; (le chemin du fichier de socket)
.__; chmod = 0700; mode de fichier de socket (0700 par défaut)

et supprimez le point-virgule au début de la chaîne ;file=/tmp/supervisor.sock et ;chmod=0700, redémarrez votre supervisord.Je vous suggère de le faire.

4
Karl Doenitz

Assurez-vous que dans /etc/supervisor.conf les deux sections suivantes existent

[unix_http_server]
file=/tmp/supervisor.sock ; path to your socket file

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
2
Yuvaraj Loganathan

Dans mon cas, le superviseur ne fonctionnait pas. Pour repérer le problème, je lance:

Sudo systemctl status supervisor.service

Le problème était que mes journaux pointaient vers un répertoire non existant, il me fallait donc le créer.

J'espère que ça aide :)

2
Alan Wagner

Vous pouvez faire quelque chose comme ça: -

Sudo touch /var/run/supervisor.sock
Sudo chmod 777 /var/run/supervisor.sock
Sudo service supervisor restart

C'est définitivement du travail, essayez ceci.

2
Manish Silawat
touch /var/run/supervisor.sock
Sudo supervisord -c /etc/supervisor/supervisord.conf

et après supervisorctl redémarrer tout

si vous voulez écouter le port du superviseur

ps -ef | grep supervisord

si vous voulez tuer le processus 

kill -s SIGTERM 2503  
0
ercvs