Je commence à convertir tous nos systèmes en utilisant upstart pour gérer nos différents processus d'application. Une chose qui me manque constamment est la capacité d'envoyer un signal différent au processus stop
ou aux restart
événements.
Par exemple, nous exécutons nos processus Web avec Unicorn . Unicorn possède une excellente API de gestion des signaux. Lorsque je veux recharger le processus avec élégance, j'envoie au maître pid un signal USR2. Pour les fermer correctement, j'envoie une commande QUIT. TERM (signal d'arrêt par défaut de l'arrivé) constitue un arrêt immédiat.
Un autre exemple utilise Resque . Pour arrêter gracieusement un travailleur, je lui envoie le signal QUIT. Le signal TERM provoque à nouveau un arrêt immédiat, que l'enfant du travailleur soit bifurqué ou non.
Upstart prend-il en charge les signaux personnalisés? Je n'arrive pas à le trouver n'importe où, ce qui m'inquiète que j'utilise le "mauvais outil pour le travail".
la source
reload signal SIGUSR2
, mais nécessite upstart v 1.10.0.Depuis upstart v1.10.0, vous pouvez définir un "signal de rechargement".
https://launchpad.net/upstart/1.x/1.10.0
Cette version est disponible sur ubuntu à partir de la v13.10 ... J'ai utilisé ces instructions pour mettre à niveau mon instance ec2:
/ubuntu/302762/upgrading-13-04-to-13-10
J'utilise rails + puma et fais des rechargements gracieux avec cette directive dans mon fichier /etc/init/app-1.conf:
la source