Atualmente, estou reconstruindo meus vps e gostaria de usar o supervisor para gerenciar meus processos gunicorn / wsgi django. O problema é que 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.
Tentei adicionar códigos de saída = 0,2 explicitamente à configuração, mas isso também não parece fazer diferença. Parece que o processo foi gerado corretamente, mas o supervisor acha que não.
Alguém tem uma idéia de como resolver isso?
Obrigado, Bjorn
fonte
Ok, depois de um pouco de confusão, descobri que tinha algo a ver com os usuários. Tentei executar os processos filho como um determinado usuário. Depois de remover a linha (veja minha configuração abaixo), tudo está funcionando bem.
Configuração do Gunicorn:
Configuração do supervisor:
fonte
Ocorreu um erro semelhante ao tentar executar um daemon http sob supervisor.
Corrigido removendo o arquivo pid antigo: httpd_pid
fonte