Le process du superviseur sort avec 'l'état de sortie 1; pas attendu'

J'essaie d'exécuter un process gunicorn_django en superviseur mais il sort toujours immédiatement, en donnant cette erreur:

INFO exited: my_app (exit status 1; not expected) INFO received SIGCLD indicating a child quit INFO gave up: my_app entered FATAL state, too many start resortinges too quickly 

Le script de mon server ressemble à ceci:

 #!/bin/bash set -e LOGFILE=/var/log/gunicorn/my_app.log LOGDIR=$(dirname $LOGFILE) NUM_WORKERS=3 USER=my-www-user GROUP=my-www-user cd /home/my-www-user/my_app source /home/my-www-user/.virtualenvs/my_app/bin/activate test -d $LOGDIR || mkdir -p $LOGDIR gunicorn_django -w $NUM_WORKERS --debug \ --user=$USER --group=$GROUP \ --log-level=debug --log-file=$LOGFILE 2>>$LOGFILE\ --pythonpath=my_app --settings=settings.active \ my_app.wsgi:application 

Et ma configuration de superviseur ressemble à ceci:

 [program:my_app] directory=/home/my-www-user/my_app/ user=my-www-user command=/home/my-www-user/my_app/server.sh stdout_logfile=/var/log/supervisor/my_app.log stderr_logfile=/var/log/supervisor/my_app-error.log autostart=true autorestart=true 

Lorsque je su dans le count my-www-user , le server démarre normalement. Quand je fais sudo supervisorctl start my_app il se bloque simplement jusqu'à ce que je fasse CTRL-c, alors je trouve l'erreur ci-dessus dans le file supervisord.log.

Quelqu'un at-il une idée de ce qui me manque?

Je semble avoir trouvé la solution. Je ne peux pas avoir un superviseur pour exécuter mon script de server en tant que «user my-www-user puisqu'il doit écrire sur des files journaux, etc., ce qui nécessite plus d'access. Donc, la solution est d'exécuter le server en tant que root et de laisser Gunicorn_django générer le process de travail comme my-www-user

 [program:my_app] user=root ; rest of config follows 

J'ai eu cette erreur en essayant d'exécuter Celery, et j'ai eu exactement le problème inverse. J'ai changé mon user de root vers www-data et cela l'a résolu.