Вот мой минимальный файл конфигурации для запуска сервера node.js с «богом»:
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
Он автоматически запускает node.js, если он еще не запущен, и использует внутреннюю демонизацию «бога»означает.
Убедитесь, что в вашей конфигурации есть часть start_if, которая определяет условие для запуска отслеживаемого процесса.Здесь у нас есть условие для запуска, если процесс не запущен, именно то, что нам нужно!
Что касается привилегий "sudo": я думаю, что нет необходимости включать sudo в вашу команду "start" команды config.Скорее вы можете вызывать с помощью «бога» sudo, тогда он будет запускать отслеживаемые процессы также с помощью sudo.Например, я тестирую конфигурацию «бога» с помощью следующей команды:
sudo god -c conf/chapayev.god -D
(- D для распечатки вывода в консоли, чтобы сразу увидеть все ошибки конфигурации)
Для получения более подробной информациипожалуйста, посмотрите на это сообщение: http://blog.acmarques.com/deploying_node_with_nginx_and_god