unix: ///var/run/supervisor.sock nenhum tal arquivo

5

Estou executando o Supervisord no meu servidor Ubuntu 14.04 e tudo funciona bem. Eu implanto usando um git push e após a implantação eu também preciso reiniciar meu servidor de aplicativos ( gunicorn ) que eu posso fazer usando supervisorctl .

un my supervisord.conf , gunicorn é definido da seguinte forma:

[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

e eu habilitei supervisorctl assim:

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

Eu comecei o supervisor usando

sudo supervisord -c /home/imb/imb/supervisord.conf

Pelo que entendi, agora eu deveria poder reiniciar o gunicorn usando o comando supervisorctl restart gunicorn , mas quando eu faço isso eu recebo

$ supervisorctl restart gunicorn
unix:///var/run/supervisor.sock no such file

Eu verifiquei e o arquivo /var/run/supervisor.sock de fato não existe, embora eu tenha certeza de que o supervisor está de fato em execução:

$ ps -A | grep supervisor
27211 ?        00:00:00 supervisord

Alguém sabe por que o arquivo /var/run/supervisor.sock não foi criado, apesar de o supervisor estar claramente em execução? Todas as dicas são bem vindas!

    
por kramer65 24.04.2016 / 21:19

3 respostas

4

Tudo bem, depois de brincar um pouco mais, achei o que fiz de errado.

Acontece as linhas de supervisorctl abaixo, só informam supervisorctl onde ele pode encontrar o arquivo de soquete.

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock

Mais acima, no arquivo, há duas outras linhas que definem onde o arquivo é realmente criado:

[unix_http_server]
file=/tmp/supervisor.sock

Como você pode ver, criou o arquivo de soquete em /tmp/ , enquanto supervisorctl tentou lê-lo em /var/run/ . Eu mudei a última linha para file=/var/run/supervisor.sock e agora funciona bem.

Espero que esta resposta ajude alguém a lidar com o mesmo problema.

Além disso, você pode conferir o link fornecido por @MariusMatutiae nos comentários: link

    
por 03.05.2016 / 09:28
2

Para usuários que tenham a mesma entrada para ambos

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock

e

[unix_http_server]
file=/tmp/supervisor.sock

siga os passos abaixo para corrigir o problema -

  1. Excluir o arquivo .sock de / tmp
  2. Execute o comando 'supervisord'. Isso irá recriar o arquivo de meia.
  3. Execute 'supervisorctl -i' para verificar o status dos serviços.

Espero que isso ajude você!

    
por 10.01.2018 / 07:32
-1

Atualize-o para o MacOS Sierra 10.12.5 .

Eu enfrentei o mesmo problema e tudo estava bem no arquivo de configuração também. Mais tarde, percebi que tinha mudado para o MacOS Sierra 10.12.3 e depois não funcionou. Ele estava trabalhando na versão mais antiga, mas não nessa versão específica do MacOS. Então eu atualizei para o MacOS Sierra 10.12.5 e tudo parece estar funcionando bem.

    
por 07.06.2017 / 20:20