bluepill ne détecte pas que les processus ont en fait démarré avec succès, et en crée donc de nouveaux
-
28-10-2019 - |
Question
J'ai un serveur (EC2) Ubuntu sur lequel bluepill
fonctionne très bien pour démarrer et surveiller les processus resque
(et il l'a fait sur d'autres nœuds dans le passé).
Je mets en place un nouveau nœud, et pour une raison quelconque sur ce nœud, bluepill
ne reconnaît pas que les processus ont démarré et sont en cours d'exécution, et continue donc à en créer de nouveaux. Je suis un peu déconcerté par ce qui cause cela. Les 2 nœuds sont presque identiques; ce sont tous les deux des serveurs EC2 fournis par les mêmes scripts chef
. Il est vrai que celui qui ne fonctionne pas est «production» et l'autre «mise en scène», mais il n'y a presque aucune différence à cause de cela.
Avez-vous des idées ou des suggestions avant de lancer le projet github et de commencer à insérer plus de surveillance, pour essayer de comprendre ce qui se passe? Il y a eu des discussions sur cette liste dans le passé à propos des problèmes avec bluepill
et resque
, mais comme je l'ai dit, cela fonctionne bien sur mon serveur de préparation et a bien fonctionné sur les serveurs de production précédents (bien que je notera que ce nouveau serveur de production est ruby 1.9.3 (vs 1.9.2) et rails 3.2 (vs 3.1)).
Voici mon fichier .pill
(ou plus précisément, le fichier modèle de mon livre de recettes chef
):
ENV["RAILS_ENV"] = "<%= node.chef_environment %>"
ENV["QUEUE"] = "*"
Bluepill.application("zmx_app") do |app|
app.working_dir = "/srv/zmx/current"
app.uid = "root"
app.gid = "root"
2.times do |i|
app.process("resque-#{i}") do |process|
process.group = "resque"
process.start_command = "rake resque:work"
process.pid_file = "/srv/zmx/current/tmp/pids/resque_workers-#{i}.pid"
process.stop_command = "kill -QUIT {{PID}}"
process.daemonize = true
end
end
end
La solution
Cela s'est avéré être un bogue dans bluepill, que j'ai bifurqué, corrigé et soumis unpull request .
Et je ne sais pas pourquoi je ne me suis pas rendu compte qu'il y avait, en fait, une différence entre mes deux environnements: la mise en scène / l'ancien prod était sur bluepill 0.0.55, mon nouvel environnement de production sur 0.0.58.
/ p>