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!
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.
J'ai rencontré le même problème que vous et après plusieurs fois, voici la solution:
Commencez par supprimer la version d'apt-get supervisor:
Sudo apt-get remove supervisor
Tuez le processus du superviseur principal:
Sudo ps -ef | grep supervisor
Ensuite, récupérez la dernière version (apt-get version était 3.0a8):
Sudo easy_install(pip install) supervisor==3.0b2
É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!
Essaye ça
cd /etc/supervisor
Sudo supervisord
Sudo supervisorctl restart all
Ê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.
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
PS: Assurez-vous que gunicorn ne devrait pas avoir de problème pendant la course.
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.
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
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 :)
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.
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