Upstart n'aime pas démarrer gunicorn car il essaie d'appeler setpgrp (voir question de github ). Quel serait le meilleur moyen de démarrer [gunicorn] sur une installation de serveur 10.04.1? - Idéalement avec un redémarrage automatique du processus principal ayant échoué et de plusieurs travailleurs. Sur le site de Gunicorn, ils mentionnent [runit] et [supervisord], cela vaut-il la peine d'installer un autre type de superviseur de processus en plus du programme de démarrage d'Ubuntu?
Je vais documenter les progrès ici après les examens si quelqu'un ne propose pas une meilleure solution.
OK j'ai essayé:
respawn
respawn limit 10 5
expect daemon # also tried expect fork
exec python /path/to/manage.py run_gunicorn --daemon
mais je n'arrive pas à avoir le boulot pour commencer, ça accroche? rien n'apparaît dans ps aux | grep manage
ou dans le syslog, j'imagine que le démarrage ne prend pas la fourchette correctement. Est-ce parce que j'utilise manage.py
au lieu de gunicorn
directement? Je donnerai directement le coup dès que j'en aurai l'occasion.
Précision: manage.py
provient d’une instance de Django 1.2 avec gunicorn
en tant qu’application installée, mais pas de paramètres spéciaux dans settings.py (je ne connais pas la syntaxe permettant de spécifier le port de Gunicorns)/address/workers dans settings.py, donc je comptais simplement utiliser cmdline args)
Je viens juste de commenter la question de github également.
Comme il semble y avoir un problème avec setpgrp et gunicorn, vous obtiendrez de meilleurs résultats si vous le lancez avec
attendre fourche
Ajouté à la définition de travail récente.
donc quelque chose comme
start on runlevel [2345]
stop on runlevel [!2345]
respawn
expect fork
exec /path/to/gunicorn --daemon
Devrait bien fonctionner.
'man 5 init' est une mine d'informations et devrait aider à comprendre pourquoi les choses fonctionnent de cette façon.
Nous venons de proposer un patch au maître Gunicorn [1] qui vous permettra d’utiliser Gunicorn avec Upstart. Vous ne devriez pas avoir besoin d'utiliser les directives de configuration "expect fork" avec cette version.