J'ai initialement posé cette question sur StackOverflow. Alors rendu compte que ce qui est probablement un meilleur endroit.
J'ai bluepill configuré pour surveiller mes processus de delayed_job. (Application Ruby On Rails)
En utilisant Ubuntu 12.10.
Je commence et le suivi du service bluepill lui - même à l' aide de Ubuntu upstart. Ma config est arriviste ci - dessous ( /etc/init/bluepill.conf).
description "Start up the bluepill service"
start on runlevel [2]
stop on runlevel [016]
expect daemon
exec sudo /home/deploy/.rvm/wrappers/<app_name>/bluepill load /home/deploy/websites/<app_name>/current/config/server/staging/delayed_job.bluepill
# Restart the process if it dies with a signal
# or exit code not given by the 'normal exit' stanza.
respawn
J'ai aussi essayé avec au expect forklieu de expect daemon. J'ai aussi essayé d' enlever la expect...complètement ligne.
Lorsque la machine démarre, bluepill se met en marche bien.
$ ps aux | grep blue
root 1154 0.6 0.8 206416 17372 ? Sl 21:19 0:00 bluepilld: <app_name>
Le PID du processus Bluepill est 1154 ici. Mais upstartsemble être suivi du PID erroné. Il est suivi d' un PID qui n'existe pas.
$ initctl status bluepill
bluepill start/running, process 990
Je pense que c'est le suivi du PID du sudoprocessus qui a lancé le processus Bluepill.
Cela empêche le processus Bluepill de réapparaître si je tue avec force Bluepill en utilisant kill -9.
De plus, je pense qu'en raison du mauvais PID suivi, le redémarrage / arrêt se bloque et je dois réinitialiser la machine à chaque fois.
Quel pourrait être le problème ici?
MISE À JOUR :
Le problème persiste à partir d'aujourd'hui (3 mai 2015) sur Ubuntu 14.04.2.
Le problème n'est pas dû à l'utilisation de sudo. Je n'utilise plus sudo. Ma configuration par défaut mise à jour est la suivante:
description "Start up the bluepill service"
start on runlevel [2]
stop on runlevel [016]
# Restart the process if it dies with a signal
# or exit code not given by the 'normal exit' stanza.
respawn
# Give up if restart occurs 10 times in 90 seconds.
respawn limit 10 90
expect daemon
script
shared_path=/home/deploy/websites/some_app/shared
bluepill load $shared_path/config/delayed_job.bluepill
end script
Lorsque la machine démarre, le programme se charge correctement. Mais upstart suit toujours le mauvais PID, comme décrit ci-dessus.
La solution de contournement mentionnée dans les commentaires peut résoudre le problème de suspension. Mais je ne l'ai pas essayé.
ps aux | grep 990devrait le faire maispstree 990pourrait être plus informatif.