2012-05-23 12 views
48

Sto utilizzando l'installazione di django-gunicorn-nginx seguendo questo tutorial http://ijcdigital.com/blog/django-gunicorn-and-nginx-setup/ Configurazione di upgin nginx, funziona. Quindi ho installato il supervisore, l'ho configurato e quindi riavvio il mio server e controllato, mostra 502 gateway non valido. Sto utilizzando Ubuntu 12.04 LTSnginx e configurazione supervisore in Ubuntu

/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 

Poi ho riavviato supervisore e io eseguire questo comando $ supervisorctl start qlimp e sto ottenendo questo errore

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

C'è qualche problema nella configurazione del mio supervisore?

Grazie!

risposta

11

Sei sicuro che il sistema di supervisione è installato e funzionante? È presente un file socket al numero /var/run/supervisor.sock?

L'errore indica che supervisorctl, la CLI di controllo, non può raggiungere il socket UNIX per comunicare con supervisord, il daemon.

È anche possibile controllare /etc/supervisor/supervisord.conf e verificare se i valori per le sezioni unix_http_server e supervisorctl corrispondono.

Si noti che questo è un problema a livello di Ubuntu, non un problema con Python, Django o nginx e come tale questa domanda probabilmente appartiene a ServerFault.

+0

No. non esiste un file supervisor.sock in/var/run Perché è così? – rnk

+2

Se '/ etc/supervisor/supervisord.conf', la sezione' unix_http_server' ha una voce di file che punta a '/ var/run/supervisor.sock', quindi supervisord non è in esecuzione o installato. Esegui 'sudo /etc/init.d/supervisor start' per vedere se inizierà. –

+0

Ho provato a eseguire 'sudo /etc/init.d/supervisor start' e ho ottenuto errore in' percorso/a' non trovato. Poi ho cambiato in '/ etc/supervisor/log /' Ora ho ottenuto il file supervisor.sock..rebooted e quindi controllato. Ancora ricevendo ** 502 gateway non valido ** – rnk

24

Ho incontrato lo stesso problema come voi e dopo aver più volte, ecco che arriva la soluzione:

  1. Prima rimuovere il apt-get versione supervisor:

    sudo apt-get remove supervisor 
    
  2. uccidere il supervisore backend processo:

    sudo ps -ef | grep supervisor 
    
  3. Quindi ottenere la ver più recente Sion (apt-get versione era 3.0a8):

    sudo easy_install(pip install) supervisor==3.0b2 
    
  4. Echo il file di configurazione (root premission):

    echo_supervisord_conf > /etc/supervisord.conf 
    

5.Start supervisord:

sudo supervisord 

6. Immettere supervisorctl:

sudo supervisorctl 

Tutto è stato fatto! Divertiti!

+0

Quando eseguo 'sudo echo_supervisord_conf>/etc/supervisord.conf' Ricevo 'Autorizzazione negata' –

+0

@nu everest Quindi è necessario eseguire come super amministratore. – Scen

65

Che non ci sia un file socket probabilmente significa che il supervisore non è in esecuzione. Un motivo per cui non è in esecuzione potrebbe essere che il file qlimp.conf abbia qualche tipo di errore.Se fai un

sudo service supervisor start 

puoi vedere se questo è il caso. Se il supervisore è già in esecuzione, dirà. E se sta rilevando un errore, di solito ti darà un messaggio di errore più utile di supervisorctl.

+1

Ho ricevuto lo stesso errore. Il tuo comando l'ha risolto Come eseguire il debug dell'errore nel file qlimp.conf? –

+0

Quando lo eseguo viene visualizzato 'IOError: [Errno 13] Autorizzazione negata: '/ var/log/supervisor/supervisord.log'' –

+1

Si scopre che ho specificato un utente non root in' [supervisord] ' –

1

Assicurarsi che nelle /etc/supervisor.conf seguenti due sezioni esiste

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

[rpcinterface:supervisor] 
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface 
+1

qual è il percorso del file socket? – avi

16

Prova questa

cd /etc/supervisor 
sudo supervisord 
sudo supervisorctl restart all 
+0

Questo ha funzionato per me perché il supervisore non è installato come servizio sul mio server. Ho bisogno di avviarlo manualmente dopo un riavvio con 'supervisord' prima di poter usare' supervisorctl'. Grazie Anil – OskarD90

+0

Ha funzionato per me, ho questo funzionamento all'interno della finestra mobile e il file sock sembra non essere stato creato all'inizio, anche se supervisord era nella lista ps. "sudo supervisord" sembra calciarlo per crearlo, anche se ha lanciato un messaggio di avvertimento che stavo eseguendo come root – tristanbailey

4

L'errore forse a causa di che non si dispone di privilegio. Forse si può correggere l'errore in questo modo, aprire il terminale e l'input vim /etc/supervisord.conf per modificare il file, la ricerca di linee

[unix_http_server]
; file =/tmp/supervisor.sock; (il percorso del file socket)
; chmod = 0700; Modalità file di socket (default 0700)

ed eliminare il punto e virgola all'inizio della stringa ;file=/tmp/supervisor.sock e ;chmod=0700, riavviare il supervisord.I suggeriscono lo fate.

9

Su Ubuntu 16+ sembra stata causata dal passaggio a systemd, questa soluzione può fissare per i nuovi server:

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

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

e poi fare controllare il proprio stato di iconic.conf [Il mio esempio] di supervisore

$ sudo supervisorctl status iconic 

enter image description here

PS: assicurarsi gunicorn non dovrebbe avere alcun problema durante runnin g.

2

si può fare qualcosa di simile: -

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

è sicuramente funziona, provare questo.

0

Nel mio caso, Supervisor non era in esecuzione. Per individuare il problema che ho eseguito:

sudo systemctl status supervisor.service 

Il problema era che non avevo i miei log che punta a una directory non esistente, quindi ho solo dovuto crearlo.

Spero che sia d'aiuto :)