Supervisor sempre sai do processo com 'status de saída 0; inesperado'

12

Atualmente, estou reconstruindo meus vps e gostaria de usar o supervisor para gerenciar meus processos do gunicorn / wsgi django. A coisa é, o supervisor continua saindo dos processos:

2010-07-23 14:54:40,575 INFO supervisord started with pid 31391
2010-07-23 14:54:41,582 INFO spawned: 'projectx' with pid 31395
2010-07-23 14:54:41,691 INFO exited: projectx (exit status 0; not expected)
2010-07-23 14:54:42,695 INFO spawned: 'projectx' with pid 31401
2010-07-23 14:54:42,801 INFO exited: projectx (exit status 0; not expected)
2010-07-23 14:54:44,806 INFO spawned: 'projectx' with pid 31404
2010-07-23 14:54:44,912 INFO exited: projectx (exit status 0; not expected)
2010-07-23 14:54:47,917 INFO spawned: 'projectx' with pid 31408
2010-07-23 14:54:48,022 INFO exited: projectx (exit status 0; not expected)
2010-07-23 14:54:49,023 INFO gave up: projectx entered FATAL state, too many start retries too quickly

Esta é a configuração que estou usando:

[program:projectx]
command=/path/to/project/bin/gunicorn_django -c /path/to/project/project/gunicorn.conf.py /path/to/project/project/production.py
user=myuser
autostart=true
autorestart=true

Eu já verifiquei duas vezes, e o gunicorn_django retorna o status 0 quando é gerado corretamente.

Eu tentei adicionar exitcodes = 0,2 explicitamente à configuração, mas isso também não parece fazer diferença. Parece que o processo é gerado corretamente, mas o supervisor acha que não.

Alguém tem uma pista sobre como resolver isso?

Obrigado Bjorn

    
por Bjorn 23.07.2010 / 15:08

3 respostas

4

Ok, depois de alguns intrigantes, descobri que tinha algo a ver com os usuários. Eu tentei executar meus processos filhos como um determinado usuário. Depois de remover a linha (veja minha configuração abaixo), tudo está funcionando bem.

Configuração do Gunicorn:

bind = "127.0.0.1:3305"
workers = 2

Configuração do supervisor:

[program:projectx]
command=/path/to/project/bin/gunicorn_django -c /path/to/project/project/gunicorn.conf.py /path/to/project/project/production.py
; set the user here instead of in the gunicorn config.
user=user
autostart=true
autorestart=unexpected
stdout_logfile=/path/to/project/logs/project.log
redirect_stderr=true
exitcodes=1
    
por 23.07.2010 / 20:58
12

Se o gunicorn_django estiver se demonsificando, ele não é o tipo de supervisor de programa projetado para gerenciar. O supervisor espera que seus programas supervisionados sejam executados em primeiro plano para que ele possa monitorar se eles saíram.

Consulte os documentos do supervisord .

    
por 23.07.2010 / 18:11
0

Eu recebi um erro semelhante ao tentar executar um daemon http sob o supervisor.

Corrigido pela remoção do antigo arquivo pid: httpd_pid

    
por 07.11.2014 / 17:34