Voici mon fichier minimal de configuration pour exécuter serveur Node.js avec « Dieu »:
APP_ROOT = "/home/sphynx/app" # application root
God.pid_file_directory = "#{APP_ROOT}/pids" # directory to store PID files
God.watch do |w|
w.name = "chapayev"
w.interval = 5.seconds # default
w.start = "env node #{APP_ROOT}/server.js" # path to node.js server file
w.stop = "env killall node" # stopping node explicitly
w.start_grace = 10.seconds
w.restart_grace = 10.seconds
w.log = "#{APP_ROOT}/log/chapayev.log" # to enable logging
w.start_if do |start| # start if condition is met
start.condition(:process_running) do |c| # check if process is running
c.interval = 5.seconds
c.running = false
end
end
end
Il commence Node.js automatiquement si elle n'a pas encore été mis, et utilise des moyens de démonisation « de Dieu » interne .
Assurez-vous que vous avez une partie "start_if" dans votre configuration, qui définit une condition pour démarrer le processus surveillé. Ici, nous avons une condition pour démarrer si le processus ne fonctionne pas, exactement ce dont nous avons besoin! En ce qui concerne les privilèges "sudo": Je pense qu'il n'est pas nécessaire d'inclure sudo dans votre commande "start" de config de dieu. Vous pouvez plutôt invoquer avec sudo "dieu" lui-même, alors il exécutera également des processus surveillés avec sudo. Par exemple je teste « dieu » config avec la commande suivante:
sudo god -c conf/chapayev.god -D
(-D pour imprimer la sortie de la console pour voir toutes les erreurs de configuration immédiatement)
Pour plus de détails s'il vous plaît jeter un oeil sur ce post: http://blog.acmarques.com/deploying_node_with_nginx_and_god
http://god.rubyforge.org/: "Dieu ne travaille actuellement que sur les systèmes Linux, BSD et Darwin." Bon chagrin avec ces noms de projets. –